bubble: stringMatchWithWildcard() oder anders mit cli für IP-geolocation

Beitrag lesen

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