用explode按$str2将$str1分割,得到的个数-1就是$str2在$str1中出现的次数。
<?
$str1="遵守中华人民共和国共和国有关法律";
$str2="共和国";
$arr=explode($str2,$str1);
echo ' '.$str1.' 中含有 '.(count($arr)-1).' 个 '.$str2.' ';
?>
<?
$str1="遵守中华人民共和国共和国有关法律";
$str2="共和国";
$arr=explode($str2,$str1);
echo ' '.$str1.' 中含有 '.(count($arr)-1).' 个 '.$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中替换汉字的函数改编而来的,此函数解决了,在匹配单字时,把汉字的后一个字符和下一个汉字的前一字符合起来当做一个汉字匹配。