无论如何,要在web主机上使simpleXML工作

时间:2010-09-19 16:01:49

标签: php simplexml file-get-contents

    <?php
$twitter_url = 'http://twitter.com/statuses/user_timeline/ishrikrishna.xml?count=1';

$buffer = file_get_contents($twitter_url);

$xml = new SimpleXMLElement($buffer);

$status = $xml -> status;

$tweet =  $status -> text;

echo $tweet;

?>

我使用此代码来获取推文并且它在localhost上成功运行但在我的webhost上没有成功,我在两个虚拟主机服务上尝试了这个脚本。

我注意到的问题是像file_get_contents(),simplexml_load_file()这样的函数无法从另一台服务器上存储的xml文件(例如rss文件)中获取数据。

2 个答案:

答案 0 :(得分:0)

我相信这意味着您关闭了fopen URL包装器。请参阅http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen如果您使用的是共享Web服务器,则可能无法启用它们。

您可以使用cURL来取代远程页面:

$ch = curl_init('http://twitter.com/statuses/user_timeline/ishrikrishna.xml?count=1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$buffer = curl_exec($ch);

这只适用于您在webhost上安装并启用cURL扩展程序。

请参阅PHP cURL文档:http://www.php.net/manual/en/book.curl.php

编辑:更正了curl_setopt调用

答案 1 :(得分:0)

SimpleXML是PHP 5中的新功能。我认为几乎所有的webhost都安装了PHP 5,但是如果您的主机仍在使用PHP 4,那可能是您的脚本无法正常工作的原因。