2011-08-14 221 views
0

我試圖通過Curl或file_get_contents訪問遠程數據,但他們都返回404未找到。瀏覽器和不同服務器上的相同鏈接工作。也許有什麼東西在PHP配置禁用?404 Not Found PHP

這裏是捲曲的相同功能和文件獲取內容:

public function getNowPlaying() { 

    $source = "http://v12.radionsm.lv/lv/stats";//$this->url . "/lv/stats"; 

    $ch = curl_init($source); 
    curl_setopt($ch, CURLOPT_USERAGENT, $this->useragent); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    if (curl_exec($ch) === FALSE) { 
     die("Curl error: " . curl_error($ch)); 
    } 
    $data = curl_exec($ch); 
    curl_close($ch); 
    $xml = simplexml_load_string($data); 

    $data = array(
     'status' => (string) $xml->status, 
     'onAir' => (string) $xml->dj_name, 
     'artist' => (string) $xml->artist_name, 
     'title' => (string) $xml->song_name, 
     'albumArt' => (string) $this->medium($xml->song_pic) 
    ); 

    return $data; 
    } 

    public function getNowPlaying() { 

     $source = "http://v12.radionsm.lv/lv/stats"; 
     echo file_get_contents($source); 


    } 

謝謝。

+0

你的操作系統是什麼? – Nickool

+0

您是否嘗試在命令行上使用wget或curl來獲取此URL?也許問題出在您運行PHP代碼的機器上的DNS。 –

+0

它的Unix,但不能說很多發行版。我無法訪問控制檯。 – Raimonds

回答

3

我認爲這是對汽車報廢的一種保護。因此,您需要重複瀏覽器行爲才能閱讀該頁面。

嘗試使用有效的主頁網址設置CURLOPT_REFERER。你需要發送curl請求中的每個人,這是由瀏覽器發送的。

+0

Im發送私人$ useragent =「Mozilla/5.0(Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1)Gecko/20061204 Firefox/2.0.0.1」;但會嘗試referer(: – Raimonds

+0

仍然返回404,並忘記提及它與其他adreses,就像它返回谷歌和其他,但不是這樣。 – Raimonds

+0

@Raimonds:聽起來像有人從該服務器訛傳請求 - 也許是因爲在開發過程中 –