我正在尝试使用Curl或file_get_contents访问远程数据,但它们都返回404 Not found。浏览器和不同服务器上的相同链接有效。也许某些东西在php配置中被禁用了?
这是与Curl和文件获取内容相同的功能:
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 :(得分:3)
我认为这是对自动报废的某种保护。因此,您需要重复浏览器行为才能读取该页面。
尝试使用有效的首页网址设置CURLOPT_REFERER。您需要在curl请求中发送每个标题,该请求由浏览器发送。