【发布时间】:2013-10-21 17:18:09
【问题描述】:
我绝对确定这将被覆盖,但已经搜索并且看不到如何以这种形式应用 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');
问题是搜索词不区分大小写,但是一旦我将它们添加到此数组中,它们就会区分大小写。我可以添加该术语的多个版本,但将搜索词转换为小写以便返回正确的结果似乎是明智的。也许这是需要编辑才能正确编辑服务器端表单输入的代码?就我而言,客户可以随心所欲地使用大写字母。
【问题讨论】:
-
如,您只想输入小写字符?或者你想在用户输入之前自己插入一个小写字符串?
-
您的意思是在处理表单的脚本中将其转换为小写吗?
-
你的意思是 strtolower($_GET['s']) ?
-
将您的 UI 与 strlower 的东西分离,并使用 javascript 将该字符串小写,作为显示和提交验证的一部分。然后在您的服务器端(在任何类中使用该搜索词)在搜索之前将其降低,然后再将其传递回 UI。
-
@MikeMcMahon,是的,我知道您应该在服务器端进行验证,但 OP 没有提及任何相关内容。他特别说他想“在表单中”这样做,而不是他需要转换表单的发布数据。