1

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

我试过使用 curl 和 simplexml_load_file 函数,但这些都不适合我。我对这种语言很陌生,但是当我点击这个链接时显示的数据看起来只不过是一个 xml 文档。但是,每当我尝试加载 url 时,都会收到一条错误消息,提示无法加载。任何想法我做错了什么?

编辑:这是我尝试使用 simplexml_load_file 的行

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

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

$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 的布尔值。

4

1 回答 1

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
于 2013-06-11T19:34:56.347 回答