PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vorkommen von Needle in Haystack zählen



Giuly
09-12-2005, 07:54
Hallo,
ich würde gerne zählen wieoft ein string in einem anderem vorkommt. In C musste ich ne funktion dafür schreiben, geht das in PHP evtl. mit regexpr oder so? Meine RegExpr-Kenntnisse gehen nämlich nicht über (.*?) hinaus :)

MfG

Turbohummel
09-12-2005, 08:43
Ganz dirket gehts nicht, aber versuchs mal so (habs nicht getestet):


$haystack= 'mein String, nur meiner, its me!';
$needle = 'me';
$counter = 0;
while($haystack = strstr($haystack, $needle)){
$counter++;
}

Giuly
09-12-2005, 09:19
Ganz dirket gehts nicht, aber versuchs mal so (habs nicht getestet):


$haystack= 'mein String, nur meiner, its me!';
$needle = 'me';
$counter = 0;
while($haystack = strstr($haystack, $needle)){
$counter++;
}

Naja, dann wohl eher

$haystack= 'mein String, nur meiner, its me!';
$needle = 'me';
$counter = 0;
$pos=0;
$sl=strlen($needle);
if($pos = strpos($haystack, $needle)) {
$counter++;
while($pos = strpos($haystack, $needle, $pos+$sl)){
$counter++;
}
}
Sonst wäre das ne Endlosschleife

Pingu
09-12-2005, 10:36
Oder man nimmt eben eine fertige Funktion: http://de2.php.net/manual/de/function.preg-match-all.php

Pingu

Giuly
09-12-2005, 10:54
Das war ja auch eigentlich meine Frage.
Aber wie mach ich das, wenn ich z.B. das Vorkommen von "Hallo.jpg" in $MyString zählen will?

Edit: "(Hallo\.jpg?)"

Romanday
10-12-2005, 22:29
Das war ja auch eigentlich meine Frage.
Aber wie mach ich das, wenn ich z.B. das Vorkommen von "Hallo.jpg" in $MyString zählen will?

Edit: "(Hallo\.jpg?)"

Ich würde es mit

http://hk2.php.net/manual/en/function.preg-match-all.php

machen, oder
hiermit rumspielen:

http://www.michael-berndt.de/ie/tux/duplicate_words.htm