PHP - 将 strtolower 应用于表单字段


PHP - apply strtolower to form field

我绝对确定这已经被涵盖,但已经搜索并且看不到如何以这种形式应用 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 可能是解决方案,但我不确定如何正确插入它。谁能帮忙?也许我有错误的解决方案?

附加信息...

正在尝试清理搜索输入,以将用户输入转换为我网站上使用的术语。只有几个术语,并使用以下代码(这是我在错误的地方发布,但我认为这是一个特定的 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');

问题是搜索词不区分大小写,但是一旦我将它们添加到此数组中,它们就会区分大小写。我可以添加该词的多个版本,但将搜索词转换为小写以返回正确的结果似乎是明智的。也许这是需要编辑才能正确编辑服务器端表单输入的代码?就我而言,客户可以随心所欲地使用资本。

为此,

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

爪哇语

<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