使用php打开以.rss结尾的URL

时间:2013-06-11 19:28:11

标签: php xml curl rss simplexml

我正在尝试加载存储在的数据 https://www.nextbigsound.com/charts/social50.rss使用php。

我尝试过使用curl和simplexml_load_file函数,但这些都不适用于我。我对这种语言很陌生,但是当我关注这个链接时显示的数据看起来只不过是一个xml文档。但是每当我尝试加载url时,我都会收到一条错误消息,指出它无法加载。我有什么想法吗?

编辑: 这是我尝试使用simplexml_load_file

的行
$rss = simplexml_load_file('https://www.nextbigsound.com/charts/social50.xml');

当我尝试卷曲方法时,我使用了这个:

$url = 'https://www.nextbigsound.com/charts/social50.xml';
$ch = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$rss = curl_exec($curl);
curl_close($curl);

要检查结果是否已返回,我只运行了一个简单的var_dump($rss),但它总是显示为布尔设置为false。

1 个答案:

答案 0 :(得分:1)

简单file_get_contents将起作用

$content = file_get_contents('https://www.nextbigsound.com/charts/social50.rss');
echo $content;

或使用simple_xml_load_string

$data = file_get_contents('https://www.nextbigsound.com/charts/social50.rss');
$xml = simplexml_load_string($data);

上面的代码假设有一个https包装器,您可以通过以下方式检查它:

echo 'https wrapper: ', in_array(stream_get_wrappers(), $w) ? 'yes':'no', "\n";

如果输出false,您需要提供php_openssl扩展名。这可以通过取消php.ini

中的行来完成
extension=php_openssl.dll // on windows machine
extension=php_openssl.so // on unix machine