Я получаю следующую фатальную ошибку PHP
Фатальная ошибка: необработанное исключение «Исключение» с сообщением «Строка не может быть проанализирована как XML» в трассировке стека ...
И журнал ошибок указывает на строку
$xml = new SimpleXMLElement($data);
(которая является следующей строкой после кода, кроме приведенного ниже) в качестве виновника.
Однако, когда я запускаюКаждый канал в отдельности, ошибки нет, и канал сохраняется в базе данных.
Этот код выдает ошибку:
$feeds = array(
'http://www.mtv.com/rss/news/news_full.jhtml',
'http://www.musicweek.com/rss.asp?navcode=232',
'http://www.cmt.com/rss/news/latestcached.jhtml',
'http://www.billboard.com/rss/news',
);
foreach ($feeds as $feed)
{
$ch = curl_init();
// causes error:
curl_setopt($ch, CURLOPT_URL, $feed);
// works:
curl_setopt($ch, CURLOPT_URL, 'http://www.billboard.com/rss/news');
curl_setopt($ch, CURLOPT_HEADER, 0 );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch); // put data from rss url into variable
curl_close($ch);
...
Если я переключаю закомментированные строки и использую $переменная подачи, ошибка и белая страница.До сегодняшнего дня все работало нормально, поэтому я подозреваю, что в одном из каналов есть что-то недопустимое в XML.
Есть ли лучший способ написать это или какой-нибудь способ перехватить исключениеесли нужно?