我需要在字符串中找到特定字符的所有位置。我正在使用以下代码
$pos = 0;
$positions = array();
while( $pos = strpos($haystack,$needle,$pos){
$positions[] = $pos;
$pos = $pos+1;
}
这段代码的问题在于,当needle
它位于位置 1 时,它返回 1,因此不会进入循环。
所以我尝试了以下
$pos = 0;
$positions = array();
while( ($pos = strpos($haystack,$needle,$pos) || (strpos($haystack,$needle,$pos)=== 0){
$positions[] = $pos;
$pos = $pos+1;
}
和,
$pos = 0;
$positions = array();
while( ($pos = strpos($haystack,$needle,$pos) || (strpos($haystack,$needle,$pos) != false){
$positions[] = $pos;
$pos = $pos+1;
}
但似乎没有任何效果。有没有其他办法。
我试过的两种选择给了我
Allowed memory size of 268435456 bytes exhausted
我认为这与编程错误有关,而不是内存问题。
请帮忙。