Есть ли способ заставить simpleXML работать на веб-хостинге? - PullRequest
1 голос
/ 19 сентября 2010
    <?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;

?>

Я использовал этот код для извлечения твитов, и он успешно работает на локальном, но не на моем веб-хосте, я пробовал этот скрипт на двух сервисах веб-хостинга.

Проблема, которую я заметил, заключается в том, что такие функции, какfile_get_contents (), simplexml_load_file () не удалось получить данные из XML-файла (например, rss-файлов), хранящегося на другом сервере.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2010

SimpleXML является новым в PHP 5. Я думаю, что почти во всех хостингах установлен PHP 5, но в случае, если ваш хост все еще использует PHP 4, это может быть причиной того, что ваш скрипт не работает.

0 голосов
/ 19 сентября 2010

Полагаю, это означает, что у вас отключены упаковщики URL-адресов. См. http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen Возможно, вы не сможете включить их, если используете общий веб-сервер.

Вместо этого вы можете использовать cURL для извлечения удаленных страниц:

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

Это будет работать только если у вас установлено и включено расширение cURL.

См. Документацию PHP cURL: http://www.php.net/manual/en/book.curl.php

Редактировать: исправлен вызов curl_setopt

...