PHP - 将strtolower应用于表单字段

时间:2013-10-21 17:18:10

标签: php forms lowercase

我绝对相信这会被覆盖,但已经搜索过,无法看到如何以这种形式申请strtolower。也许我正在寻找错误的解决方案。我有一个表格:

<form id="demo-b" method="get" action="<?php echo home_url( '/' ); ?>">
<div class="input-prepend">
<input class="skip-search" type="search" placeholder="Search" id="prependedInput" name="s" value="<?php the_search_query(); ?>">
<input type="hidden" name="sentence" value="1">
</div>
</form>

我正在尝试将搜索输入转换为小写,并且从我看到的PHP strtolower可能是解决方案,但我不知道如何正确插入它。有人可以帮忙吗?也许我的解决方案错了?

其他信息......

我正在尝试清理搜索输入以将用户输入转换为我网站上使用的术语。只有几个术语,并使用以下代码(这是Wordpress和道歉,如果我发布在错误的地方,但我认为这是一个特定的PHP问题)...

/*sanitise search queries manually*/
$search_replacements = array(
'tilt shift' => 'tilt-shift',
'depth of focus' => 'depth of field'
);
function modify_search_term($request_vars) {
global $search_replacements;
if (!empty($request_vars['s']) && !empty($search_replacements[$request_vars['s']])) {
    $request_vars['s'] = $search_replacements[$request_vars['s']];
}
return $request_vars;
}
add_filter('request', 'modify_search_term');

问题是搜索术语不区分大小写,但只要我将它们添加到此阵列,它们就会区分大小写。我可以添加该术语的多个版本,但将搜索词转换为小写似乎是明智的,以便返回正确的结果。也许这是需要编辑的代码才能正确编辑服务器端的表单输入?就我而言,客户可以尽可能多地使用大写字母。

1 个答案:

答案 0 :(得分:1)

您需要使用Javascript,因为PHP在您提交表单后处理,或者如果您使用AJAX,那么这是一个不同且效率低下的故事。

<强>的Javascript

<input type="text" value="" onKeyPress="this.value = this.value.toLowerCase();" onKeyUp="this.value = this.value.toLowerCase();" onKeyDown="this.value = this.value.toLowerCase();">

JSFiddle

服务器端PHP

$_POST['s'] = strtolower($_POST['s']);

// Do whatever you want with the search term now because it is lower-case