&gt:是HTML转义字符HTML 原代码 显示结果 描述 
&lt; < 小于号或显示标记 
&gt; > 大于号或显示标记 
&amp; & 可用于显示其它特殊字符 
&quot; " 引号 
&reg; ® 已注册 
&copy; © 版权 
&trade; ™ 商标 
&ensp;   半个空白位 
&emsp;   一个空白位 
&nbsp;   不断行的空白 %你可以用\% 第二个问题,你可以选择启用标题或者标签搜索
另外可以从标题和标签同时搜索
select * from table where title link%$keys% or tage==$keys 怎么样,给加点分吧欢迎加入PHP技术交流QQ群
6729848

解决方案 »

  1.   

    tag 好象用的不多了,前台是tag,显示时多设为关键词
      

  2.   

    1。除了% 还有 _ & 这写输入进去的时候都能把所有的内容多搜索出来
    请问大家该怎么屏蔽?
    还有输入\也会出错2。写进数据库的时候 addslashes
    输出的时候 
    $str=stripslashes($str); 
    $str=htmlspecialchars($str);
    如果写进的时候就html的话  得占用更多的空间啊
     不写的话 搜索的时候 <!-- 就会隐藏下面的 等于html执行了
      

  3.   

    把这些符号过滤掉不就行了?用preg_replace
      

  4.   

    过滤掉哪些符号呢?_ \ & %这些都过滤掉吗?那也得替换吧  搜索的时候万一人家有这些还得查给人家啊还有写入数据库的时候addcs什么那个函数 背不出
    那要不要加个html什么函数转换成html呢 转换了就占空间了
    不转吧  人家在搜索栏那里一搜<!-- 就出事了大家说说你们怎么做的啊
      

  5.   

    用\%是没有错的。你测试时肯定没有好好注意到PHP的字符窜本身的那一次转义吧?
    按这个写肯定能搜到"ab%"
    $str="select * from table where name like 'ab\\\%'"
      

  6.   

    注意了撒 会自动加\的
    譬如我输入'  $_get[]的时候就是\'了现在%比较好处理
    \跟&难处理  不知道怎么转换??还有就是数据写入库的时候只addcslashes 要htmlspecialchars
    如果要的话 写入库体积就增加许多了 譬如你是显示100
    如果人家输入n个<< 这一个就转换成几个字符了 那我那个字段在数据库的大小该怎么设置?
      

  7.   

    ...这太浪费了吧?
    设置varchar 100 比备注可是省很多空间的
      

  8.   

    up 譬如& _这些怎么替换
      

  9.   

    $StrKey = addcslashes($StrKey ,'%?_&');