Вопрос о ремнях для правки бритв: как получить 2-е возникновение строки?

Я понимаю, что эта функция получит первое вхождение строки.

Но то, что я хочу, является 2-м возникновением.

Как пойти о выполнении этого?

47
задан K-Gun 11 November 2019 в 07:17
поделиться

3 ответа

Вам необходимо указать смещение для начала поиска в качестве необязательного третьего параметра и вычислить его, запустив поиск сразу после первого вхождения, добавив длину того, что вы ищете, к месту, в котором вы его нашли.

$pos1 = strpos($haystack, $needle);
$pos2 = strpos($haystack, $needle, $pos1 + strlen($needle));
48
ответ дан 26 November 2019 в 19:28
поделиться

http://php.net/strpos

$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1);  // $pos = 7, not 0
-15
ответ дан 26 November 2019 в 19:28
поделиться

Вы можете попробовать это, хотя я не проверял -

$pos = strpos($haystack, $needle, strpos($haystack, $needle)+strlen($needle));
8
ответ дан 26 November 2019 в 19:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: