你的情况是怎样,以下测试好象没有问题:
<?PHP
$str1="abc\?\*def";
$str2="fffffffffgsdfabc?*defssssdfg";
if(eregi($str1,$str2))
echo '$str2包含$str1';
?>

解决方案 »

  1.   

    我的str1是前一个页面用户输入的,当然我说的是只有一个 ?或 * 时,而不是包含?或*的字符串,如果是字符串,abc?*abcx也不会出错。
      

  2.   

    if(eregi(quotemeta($str1),$str2))
      

  3.   

    請問無恨兄,你那些函數從娜兒弄來的,我有一本php書籍,可都沒有呀.
      

  4.   

    这个问题可能有些麻烦,源码如下:$key=$_POST[key];  //key是上页输入的查询关键字
    $key=htmlspecialchars($key); //转换为 html标签(不要告诉我不转换).
    $key=stripslashes($key);  //去掉\,如不去,输入\或者",提交到此页面会显示关键字为\\或者\"
    if (eregi($key,$title)) { ...}
    此时出现了本贴子提出的问题,输入?,*,eregi函数就会出错。楼上无恨兄说的两个函数原来是加入\,和我前面去掉\刚好冲突。我是个初学者,思路有些乱,可能也不对。简单的说,就是查询框可以输入包括汉字,标点,html标记,及* ? \等所有字符。还请各位老鸟耐心帮忙,或者有更好的思路,先谢谢了。
      

  5.   

    用strstr(string1,string2)可判断sting1是否存在string2中