2011-01-30 237 views
0

我有一個字符串,可能是一個URL。我想通過正則表達式來判斷它是否是一個Http/FTP URL。如果字符串是有效的URL,那麼我會讓它超鏈接和藍色等,如果它不是基於ture或假的正則表達式的URL我想要進一步決定進一步..URL驗證的正則表達式

什麼是最好的正則表達式?

+0

[URL用於PHP的驗證/正則表達式]的可能重複(HTTP://計算器.com/questions/206059/php-validation-regex-for-url) – 2011-01-30 04:57:07

+2

你有沒有Google搜索「URL正則表達式」?什麼味道正則表達式/爲哪種語言? – 2011-01-30 04:57:21

回答

0

這個Perl代碼相當準確,可能不完美。第1組中含有兩種httpftp

if ($str =~ /^(http|ftp):\/\/[\w.%@]+(:?[?].*)?/) { 
    print "matches $1\n"; 
} else { 
    print "no match\n"; 
} 
0

以防萬一你想知道的網址確實存在:

function url_exist($url){//se passar a URL existe 
    $c=curl_init(); 
    curl_setopt($c,CURLOPT_URL,$url); 
    curl_setopt($c,CURLOPT_HEADER,1);//get the header 
    curl_setopt($c,CURLOPT_NOBODY,1);//and *only* get the header 
    curl_setopt($c,CURLOPT_RETURNTRANSFER,1);//get the response as a string from curl_exec(), rather than echoing it 
    curl_setopt($c,CURLOPT_FRESH_CONNECT,1);//don't use a cached version of the url 
    if(!curl_exec($c)){ 
     //echo $url.' inexists'; 
     return false; 
    }else{ 
     //echo $url.' exists'; 
     return true; 
    } 
    //$httpcode=curl_getinfo($c,CURLINFO_HTTP_CODE); 
    //return ($httpcode<400); 
}