代码片段 → PHP → URL 验证 URL 验证 Chris Coyier 于 2009年9月5日 $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;
$output = ‘proper UL’;
我认为这一行有一个错别字。
我认为它需要改进。该代码将“http://www.example”网址作为有效网址传递。
filter_var 很好,但我仍然相信良好的旧 preg_match() 和正则表达式。
preg_match(“#^http(s)?://[a-z0-9-_.]+\.[a-z]{2,4}#i”,$url);
我的 URL 验证正则表达式(也验证 GET 变量和 URL 之后的“#”)
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);