Как разобрать rss со страницы php, используя jQuery/jFeed?
Я пытаюсь найти разумный способ разбора rss, используя jQuery и jFeed.
Из-за той же политики происхождения я помещаю ленту новостей о здоровье Би-би-си на локальную страницу ( http://www.davidrhysthomas.co.uk/play/proxy.php).
Первоначально это было точно так же proxy.php
скрипт доступен в пакете загрузки jFeed, но из-за отключения моего хоста allow_url_fopen()
Я изменил php к следующему:
$url = "http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/health/rss.xml";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
echo "$data";
curl_close($ch);
Который, кажется, генерирует такое же / сопоставимое содержимое как оригинал fopen
на моей локальной машине.
Теперь, похоже, это работает, я смотрю на настройку скрипта jFeed для работы со страницей и, к моему смущению, не вижу как.
Я понимаю, что, по крайней мере, это должно работать:
jQuery.getFeed({
url: 'http://www.davidrhysthomas.co.uk/play/proxy.php',
success: function(feed) {
alert(feed.title);
}
});
... но, как я уверен, вы ожидаете, это не так. То, что там нет, доступно для ознакомления здесь: http://www.davidrhysthomas.co.uk/play/exampleTest.html. И я, честно говоря, понятия не имею, что с этим делать.
Если бы кто-нибудь мог предложить несколько указателей, советов, подсказок или, в крайнем случае, быстрый удар по щекам и "возьми себя в руки!" это было бы очень ценно...
Заранее спасибо =)
3 ответа
На вашей тестовой странице у вас есть несколько строк скрипта, которые выглядят как неправильные...
<script type="text/javascript">
jQuery(function() {
url: 'http://www.davidrhysthomas.co.uk/play/proxy.php',
success: function(feed) {
alert(feed.title);
}
...
Я думаю, что это должно быть больше похоже на...
<script type="text/javascript">
jQuery(function() {
jQury.ajax( {
url: 'http://www.davidrhysthomas.co.uk/play/proxy.php',
success: function(feed) {
alert(feed.title);
}
});
...
В Zend Framework есть класс для потребления всех видов каналов.
это называется Zend_Feed
В своем коде PHP вы пропустили заголовок xml:
$url = "http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/health/rss.xml";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
header("content-type: text/xml");
echo "$data";
curl_close($ch);