2011-06-01 70 views
1

我將從用戶處獲取網址。現在我需要驗證地址是否存在。驗證網址是否有效並正在運行

例如:

如果用戶輸入「google.com」,那麼我會通過「google.com」作爲參數傳遞給一些功能,函數將返回TRUE我如果URL是活的,上傳和運行,否則爲假。

任何內置函數或一些幫助。

+0

你有沒有試過'file_get_contents()' – 2011-06-01 04:19:20

回答

2

我建議使用get_headers($url)並檢查您的回覆中是否包含「200 OK」。如果是這樣,那麼該網站是活着的,並用一個有效的請求作出迴應。如果需要,您還可以檢查其他狀態代碼,例如重定向和什麼。

0

嘗試fopen

$f = @fopen('http://www.google.com/', 'r'); 
if (is_resource($f)) { 
    fclose($f); 
    return true; 
} else { return false; } 
2
function url_exists($url){ 
    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); 
    curl_setopt($ch, CURLOPT_TIMEOUT,5); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,5); 
    curl_exec($ch); 
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    curl_close($ch); 
    return $code == 200; 
} 

您可能希望支持額外httpcodes如201,但是這取決於你。

編輯:

AS記下這個給你了你想失敗之前使用超時更好的控制。