Räkna antal förändringar

PHP

2 svar · 213 visningar · startad av Kim

Medlem sedan jan. 20007 697 inlägg
Trådstart#1

Jag gör en förändring i en text genom att byta ut en viss sträng mot en annan genom att använda str_replace(). Finns flera delar i texten som matchar argumenten så kommer ju alla bytas ut. Finns det något enkelt sätt att ta reda på hur många gånger strängen byts ut?

Rörigt? Jag gör ett litet exempel.
Jag har texten Det är äckligt med banan banan.
Här vill jag byta ut ordet banan mot ***** (fem stjärnor). Två utbyten kommer ske eftersom banan finns representerat två gånger. Har jag istället texten Det är äckligt med banan banan banan så kommer tre byten att ske.

Kan man räkna antalet på nåt vis? :q

Medlem sedan juni 20008 205 inlägg
#2

Jag skulle satsa mina pengar på preg_match_all.

function bort_med_bananer(&$s){
$antal_bananer = preg_match_all('/banan/', $s, $garbage);
$s = str_replace('banan', '*****', $s);
return $antal_bananer;
}

$text = 'Vicken tur att du köpte två bananer bananer, du haru en å eta också!';
$n = bort_med_bananer($text);
echo "Vi har tatt bort $n förekomster av ordet 'banan' i strängen '$text'";
Medlem sedan jan. 20007 697 inlägg
#3

Tack så mycket. :)

265 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)