<?php
$string="I am Azizul hakim.I am a student.I am feeling good today";
$find="am";
$i=0;
$find_length=strlen($find);
while($i<strlen($string))
{
$pos=strpos($string,$find,$i);
echo $pos;
$i=$pos+$find_length;
}
?>
php代码执行无限次,尽管限制是通过指定字符串的字符串长度来限制的,为什么它执行无限次呢?
答案 0 :(得分:0)
strpos
返回false,当剩余的$string
不包含$ find且循环重新开始时,返回值为0。
答案 1 :(得分:0)
在这种情况下,我相信与perl兼容的正则表达式(pcre)始终是最佳选择。为什么,因为您将仅使用(1)函数/方法调用,然后使用简单循环来处理结果。使用字符串类型的函数/方法,每次在$ haystack中找到$ needle时,您都需要调用另一个字符串类型的函数/方法来处理$ haystack中$ needle的下一次出现!