2011-08-14 68 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:听起来像有人从该服务器讹传请求 - 也许是因为在开发过程中 –