2015-12-12 103 views
0

我想檢查一個頁面是否使用curl給出200標題。curl獲取標題

我使用下面的腳本:

public static function isUrlExist($url) 
{ 
    $curl = curl_init($url); 
    curl_setopt($curl, CURLOPT_NOBODY, TRUE); 
    curl_exec($curl); 
    $code = curl_getinfo($curl, CURLINFO_HTTP_CODE); 
    if ($code == 200) { 
     $status = true; 
    } else { 
     $status = false; 
    } 
    curl_close($curl); 
    return $status; 
} 

奇怪的是它的計算結果爲true,如果我查詢網站,如VIMEO:https://vimeo.com/api/oembed.json?url=https://vimeo.com/11896354

但網站如Facebook或谷歌返回false。

我錯過了什麼嗎?

+0

你檢查了狀態碼(和答覆的其餘部分)嗎?您可能會遇到重定向,或者他們可能會阻止使用像curl默認的用戶代理的請求。 – jcaron

回答

3

我最好的猜測是facebook/google正在重定向你,導致3xx重定向狀態碼。嘗試在curl_exec()之前添加curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);以使curl跟隨重定向。