$url = 'http://example.com';
$validation = filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED);
if ( $validation ) $output = 'proper URL';
else $output = 'wrong URL';
echo $output;
URL-Validierung
Chris Coyier am
$output = ‘proper UL’;
Ich glaube, da ist ein Tippfehler in dieser Zeile.
Ich denke, es muss verbessert werden. Der Code wird die URL „http://www.example“ als gültige URL durchgehen.
filter_var ist gut, aber ich vertraue immer noch auf das gute alte preg_match() und die regulären Ausdrücke.
preg_match(“#^http(s)?://[a-z0-9-_.]+\.[a-z]{2,4}#i”,$url);
Meine Regex zur URL-Validierung (validiert auch GET-Variablen und „#“ nach URLs)
preg_match("/^(https?:\/\/)([\da-z\.-]+)\.([a-z\.]{2,6})(\/([\da-z\.-]+))*\/?(([\w\.-]+)\.([\da-z]{2,6}))?((\#[\w\.-]+)|(\?([\da-z]+(=[\da-z]+)?)(&([\da-z]+(=[\da-z]+)?))*))?/i", $url);