PHP strpos (), найдены повторяющиеся экземпляры - PullRequest
1 голос
/ 23 октября 2010

Используя функцию strpos() в PHP, как я могу повторить то, что нашел strpos()?Все предметы, которые он нашел.Спасибо

Ответы [ 2 ]

0 голосов
/ 23 октября 2010

strpos () возвращает только первую иглу, найденную в стоге сена.Если вам нужно найти их все, вы можете сделать что-то вроде этого:

$str = "abcabcabc";
$arr = array();
$delChar = 0;

while (($pos = strpos($str, "a")) !== false) {
    $arr[] = $pos + $delChar;
    $delChar += strlen($str) - strlen(substr($str, $pos + 1));
    $str = substr($str, $pos + 1);
}

var_dump($arr);

, который печатает 0, 3 и 6.

Редактировать: я только что прочитал комментарии, я предположил, что выимел в виду позиции, найденные функцией, возможно я ошибся: -p

0 голосов
/ 23 октября 2010

strpos находит то, что вы говорите, чтобы найти, поэтому, по сути, вы спрашиваете это:

$needle="foo";
if (strpos($haystack, $needle)!==false)
{
    echo $needle;
}

Может быть, вы действительно хотите заняться чем-то другим?

...