$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 Validation
Chris Coyier
on
$output = ‘proper UL’;
I think there is a typo in that line.
I think it needs improvements. The code will pass the url “http://www.example” as valid url.
filter_var is good one but I still have faith in good old preg_match() and the regular expressions.
preg_match(“#^http(s)?://[a-z0-9-_.]+\.[a-z]{2,4}#i”,$url);
My regex for URL validation (validates GET variables and “#” after URLs too):
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);