我有一个搜索表单,其中我得到用户写入搜索的单词。
<li id="search">
<?php
if(isset($_POST['search'])){
$search = $_POST['s'];
$search = handle($search);
header('Location: '.BASE.'/search/'.$search);
}
?>
<form id="search" method="post" enctype="multipart/form-data">
<input name="s" type="text" size="40" placeholder="Search..." />
<button type="submit" name="search"></button>
</form>
</li>
我试图使用一个函数来改变特殊的字符,因为我意识到,如果某些用户搜索了例如&#34;%&#34; 他得到了#34; 400错误&#34;。
因此使用函数来处理它似乎很重要。
function handle($string) {
$string = str_replace(' ', '-', $string);
$string = preg_replace('/[^A-Za-z0-9\-]/', ' ', $string);
return preg_replace('/-+/', '-', $string);
}
但是这个函数我有一个问题,如果用户搜索&#34;%&#34;,我的函数正在将这个字符替换为&#34;&#34;,因为这个
我有一个错误: strpos():空针 $searchPos = strpos($result['content'],$search);
但是在句柄函数中我有$string = preg_replace('/[^A-Za-z0-9\-]/', ' ', $string)
,用来改变空格的特殊字符,而不是为了什么&#34;&#34;。
你看到我在这里做错了吗?