Url验证不起作用,需要一种方法来验证php中的url

时间:2012-11-12 06:28:08

标签: php

我有这种方式验证网址:

if(!filter_var($url_validity_check, FILTER_VALIDATE_URL) || !preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $url_validity_check) )

{

但事实证明,对于某些网址来说,它是无用的......这是验证网址的最佳方法吗?是通过发送curl请求并期望响应代码不是404?或通过IP检查它,看看它得到了什么IP?是否有更好,更安全的方式?

我也有这段代码:

$http = curl_init($url);
curl_setopt($http, CURLOPT_MAXREDIRS, 4);
curl_setopt($http, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($http);

$http_status = curl_getinfo($http, CURLINFO_HTTP_CODE);
curl_close($http);
echo $http_status;

但它返回0.

**UPDATE:**

我使用这个正则表达式:

#((http|https|ftp)://(\S*?\.\S*?))(\s|\;|\)|\]|\[|\{|\}|,|\"|'|:|\<|$|\.\s)#ie

它是否足够好,或者还有什么更好的

0 个答案:

没有答案