Парсер RSS для Twitter медленный - почему? - PullRequest
1 голос
/ 18 ноября 2010

Я использую этот скрипт , чтобы получить первый элемент моего твиттера. Тем не менее, он медленный (загрузка страницы занимает от 3 до 4 секунд). Почему это так медленно?

Вот как я это использую.

require_once 'rss_php.php'; //see link above

$rss = new rss_php;

$rss->load('http://twitter.com/statuses/user_timeline/XXXXXX.rss');

$feed = $rss->getItems(false, 1);

echo $feed[0]['title'];
echo $feed[1]['title'];

Я получаю это уведомление PHP:

Примечание: неопределенная переменная: tempNode в C: \ WAMP \ WWW \ rss_php.php по линии 137

Я не знаю, почему, так как это работает, строка 137 - это строка:

return $tempNode;

Спасибо всем за любую помощь. Я ценю любые советы по ускорению этого.

Ответы [ 4 ]

3 голосов
/ 18 ноября 2010

Извлечение контента из удаленного местоположения может привести к довольно неприятным проблемам с загрузкой.

Попробуйте сохранить содержимое RSS-канала в локальном файле и посмотрите, сохраняется ли проблема при загрузке с локального диска. Если это решит проблему, вам следует время от времени проверять кэширование содержимого канала.

2 голосов
/ 18 ноября 2010

Во-первых, строка 110 вашей прошлой строки назначает переменную, которая никогда не была объявлена.Таким образом, любые запросы или присвоения необъявленной переменной будут делать это.Из того, что я вижу, это должно быть так же просто, как добавить $tempNode = Array(); чуть ниже вызова функции метода extractDOM.

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

0 голосов
/ 22 апреля 2013

После строки 138 в файле rss_php.php (v.1 Бесплатная версия) вставьте это:

...
if (!isset($tempNode)){
    $tempNode = null;
}
return $tempNode;
...

Наслаждайтесь

;)

0 голосов
/ 18 ноября 2010

Избавление от этого возврата $ tempNode;заметить легко, но это не ваша проблема, его просто нужно определить вне forloop в этой функции extractDOM.

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

http://ilia.ws/archives/12-PHP-Optimization-Tricks.html

http://progtuts.info/55/php-optimization-tips/

http://hungred.com/useful-information/php-micro-optimization-tips/

...