用explode按$str2将$str1分割,得到的个数-1就是$str2在$str1中出现的次数。
<?
$str1="遵守中华人民共和国共和国有关法律";
$str2="共和国";
$arr=explode($str2,$str1);
echo ' '.$str1.' 中含有 '.(count($arr)-1).' 个 '.$str2.' ';
?>

解决方案 »

  1.   

    function my_search ($str1,$str2)
    {
     $result=0;
     $str1_length=strlen($str1);
     $str2_length=strlen($str2);
     for ($i=0;$i<=$str1_length;)
     {
      if (substr($str1,$i,$str2_length)==$str2)
      {
       $result=1;
       return $result;
       break;
      }else{
       if (ord(substr($str2,$i,1)>128)
       {
        $i+=2;
       }else{
        $i++;
       }
      }
     }
     return $result;
    }
    这是用我自己的一个解决PHP中替换汉字的函数改编而来的,此函数解决了,在匹配单字时,把汉字的后一个字符和下一个汉字的前一字符合起来当做一个汉字匹配。
      

  2.   

    我后来找了一下,用preg_match()就可以查找到了。初步可以,不过,可能会遇上别的问题出现!