Frågan#1
Jag skulle behöva veta när den nte förekomsten av någonting inträffar i en lång sträng, alltså t ex vid vilken position den åttonde förekomsten av "hej" finns i en sträng.
Jag försökte med regexp men fick aldrig till det riktigt.
3 svar · 251 visningar · startad av Mr. N.
Jag skulle behöva veta när den nte förekomsten av någonting inträffar i en lång sträng, alltså t ex vid vilken position den åttonde förekomsten av "hej" finns i en sträng.
Jag försökte med regexp men fick aldrig till det riktigt.
Använd funktionen strpos. Den har en för dig användbar tredje parameter som heter offset. Typ så här:
<?php
$result = array();
$str = "din jättelånga sträng";
$sok = "det vi ska leta efter";
$pos = 0;
while (($pos = strpos($str, $sok, $pos)) !== false)
$result[] = $pos++;
?>
Den åttonde positionen hittar du nu i $result[7].
(Förresten måste man nog öka $pos så den inte hittar samma position om och om igen.)
(Parenteser behövs också runt tilldelningen.)
Wunderbar!