с использованием simplexml для разбора канала, но я хочу получить дату самого старого элемента в канале. кто нибудь знает как это сделать? Спасибо
$ rss = simplexml_load_file ("http://search.twitter.com/search.atom?lang=en&q=foobar&rpp=100&page=1");
Сначала получите все элементы из RSS-канала и сохраните их в массиве, например, this .
Теперь сортируем массив по дате .
Получите первый / последний результат в зависимости от вашего порядка сортировки.
Если вы просто хотите получить последний <entry> элемент (в document-order ), вы можете использовать SimpleXMLElement :: xpath () и функцию last () http://www.w3.org/TR/xpath/ говорит:
<entry>
child :: para [position () = last ()] выбирает последнего para-потомка контекстного узла
, например
$url = "http://search.twitter.com/search.atom?lang=en&q=foobar&rpp=100&page=1"; $feed = simplexml_load_file($url); $feed->registerXPathNamespace('atom', 'http://www.w3.org/2005/Atom'); $entry = $feed->xpath('//atom:entry[position()=last()]'); if ( isset($entry[0]) ) { $entry = $entry[0]; } else { die('not found'); } var_dump($entry);
[position()=last()] можно сократить до [last()]
[position()=last()]
[last()]
Если самая старая запись не является последней в порядке документов, вам понадобится что-то еще.