Da braucht es kein *. Teilstrings sucht man mit strpos(). Wenn das Ergebnis 0 (und nur 0, nicht etwa false) ist, dann entspricht das einem suchbegriff*. Für *suchbegriff müsstest du etwas rechnen, und ermitteln, ob die Position des "suchbegriff" gleich Stringlänge minus "suchbegriff"-Länge ist. Bei *suchbegriff* muss das Ergebnis lediglich ungleich false (false!, nicht 0) sein.
Wäre es für bla* bzw *bla nicht effizienter, substr und == zuverwenden, statt den String abzusuchen?
Also:
function str_startswith($haystack, $needle) {
return
($len_needle = strlen($needle)) <= ($len_haystack = strlen($haystack))
?
substr($haystack, 0, $len_needle) == $needle
:
$len_needle == $len_haystack && $haystack == $needle;
}
function str_endswith($haystack, $needle) {
return
($len_needle = strlen($needle)) <= ($len_haystack = strlen($haystack))
?
substr($haystack, $len_haystack - $len_needle)) == $needle
:
$len_needle == $len_haystack && $haystack == $needle;
}
MfG
bubble
--
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye