до того, как я вернусь к хосту (еще раз), единственный журнал ошибок, который они дают по приведенному ниже сценарию:
Преждевременный конец заголовков скриптов: php-cgi
скрипт, который я запускаю, который работает на других серверах, а моя локальная машина находится на этом сервере perticualr, дает ошибку 500:
$ch = curl_init("http://feeds.energydigger.com/headlines.xml"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, 0); $data = curl_exec($ch); curl_close($ch); $doc = new SimpleXmlElement($data, LIBXML_NOCDATA); if(isset($doc->channel)) { parseRSS($doc); } function parseRSS($xml) { $cnt = 3; for($i=0; $i<$cnt; $i++) { $url = $xml->channel->item[$i]->link; $title = $xml->channel->item[$i]->title; $desc = $xml->channel->item[$i]->description; $date = $xml->channel->item[$i]->pubDate; echo '<p><a href="'.$url.'">'.$title.'</a><br />'.$date.'</p>'; } }
Кто-нибудь знает, что может породить ошибку, я не могу сказать, что видел это раньше … Я все еще пытаюсь заполучить журналы PHP.
Вы можете получить ошибку 500, если исключение выбрано и не поймано, а в настройках PHP display_errors
= 0. Скорее всего, это генерируется SimpleXML. Попробуйте обернуть часть с помощью XML-операций в блок try .. catch
и посмотреть, что такое исключение. Например:
$ch = curl_init("http://feeds.energydigger.com/headlines.xml"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, 0); $data = curl_exec($ch); curl_close($ch); try { $doc = new SimpleXmlElement($data, LIBXML_NOCDATA); if(isset($doc->channel)) { parseRSS($doc); } function parseRSS($xml) { $cnt = 3; for($i=0; $i<$cnt; $i++) { $url = $xml->channel->item[$i]->link; $title = $xml->channel->item[$i]->title; $desc = $xml->channel->item[$i]->description; $date = $xml->channel->item[$i]->pubDate; echo '<p><a href="'.$url.'">'.$title.'</a><br />'.$date.'</p>'; } } } catch (Exception $e) { echo $e -> getMessage(); }
На всякий случай, подробнее об исключениях PHP .