(strpos():空针)在搜索表单中使用函数替换特殊字符

时间:2014-08-14 22:25:00

标签: php preg-replace

我有一个搜索表单,其中我得到用户写入搜索的单词。

<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;。

你看到我在这里做错了吗?

0 个答案:

没有答案