2010-03-07 2 views
0

Например, если есть RSS-канал, и по какой-либо причине он недоступен или не может быть захвачен. Я хочу показать простое сообщение о том, что «фид нельзя захватить».Как проверить, работает ли RSS-канал?

Прямо сейчас PHP выкидывает действительно уродливое предупреждающее сообщение.

примечание: мне не нужно знать, действительно ли оно. Мне просто нужно знать, работает ли канал. Я не хочу отключать предупреждения. Я хочу выплюнуть простое эхо, если канал не работает. Я использую PHP без библиотек.

Любое спасибо было бы здорово!

Rick

+0

Добро пожаловать на SO :-) Вы можете предоставить нам некоторые примеры кода, который вызывает ошибку? и какую ошибку вы получаете? – richsage

+0

Спасибо. Сейчас все работает нормально, но скажу, что я вытаскиваю фид из http://newsrss.bbc.co.uk/rss/sportplayer_uk_edition/football/rss.xml , и они меняют свою структуру на http: // newsrss. bbc.co.uk/rss/sportplayer_uk_edition/soccer/rss.xml Переключены футбольные и футбольные маршруты. Подача больше не будет работать, и я могу легко ее исправить, но я просто хочу простой «Не могу захватить канал прямо сейчас», чтобы пользователи не увидели ошибку загрузки документа dom. Rick –

+1

Как вы получаете свои RSS? – ccheneson

ответ

0

Вы можете вручную обрабатывать любые ошибки XML парсинга с помощью функции libxml_use_internal_errors.

Пример можно найти here

+0

Это было полезно, но я все еще получаю эту ошибку. (URL неверен, поэтому я мог бы проверить) Предупреждение: DOMDocument :: load (http://rss.cnn.com/rss) [domdocument.load]: не удалось открыть поток: запрос HTTP не удался! HTTP/1.0 404 Ошибка Feed not found: FeedBurner не может найти этот URI канала. в /home/content/r/i/c/rickchendesign/html/twg/rssLib.php в строке 17 –

+0

Действительно кажется, что нет способа подавить ошибку при использовании DOMDocument (я думал, что вы используете SimpleXML) "чисто ». Вы можете создать для него собственный обработчик ошибок PHP. Хотя, по общему признанию, это кажется довольно уродливым, и я считаю, что PHP действительно должен был облегчить обработку предупреждений в этом случае. – Inspire

+0

Я должен был использовать Simple XML. Я начал этот проект как изучающий PHP-проект. По крайней мере, я узнал. Спасибо за вашу помощь. Rick –

0

Вы можете сделать это:

error_reporting(E_WARNING); 

if (!$xmlDoc->load($url)){ 

echo ("Not content could be loaded."); 

} 
Смежные вопросы