Как вернуть код ошибки в DOMDocument->load() ?

vlad275

Новичок
Как вернуть код ошибки в DOMDocument->load() ?

По неясной причине новости с RSS линейки новостей Гугла то идут то не идут на нашем сайте
Как возвращать код ошибки?


<?php

ini_set('display_errors', 'On');

$xmldoc = new DOMDocument('1.0', 'windows-1251');

$uri='http://news.google.ru/news?hl=ru&lr=&ie=UTF-8&oe=UTF-8&um=1&tab=wn&output=rss&q=mgts';

$xmldoc->load($uri);

echo Err.Number;
$xsl = new DOMDocument;
$xsl->load('news.xsl');

$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);

echo $proc->transformToXML($xmldoc);

?>
 

FractalizeR

Новичок
Вы бы хоть проверку ошибок встроили. Вызов $xmldoc->load($uri); вполне может завершиться неудачно. Как и $xsl->load('news.xsl'), кстати. load метод ошибку, скорее всего, выдавать в странице не будет. Просто false вернет и все.

echo Err.Number; - это, кстати, зачем?
 

Pigmeich

Новичок
vlad275
заметьте, что load() загружает XML из файла. Значит он должен его сначала скачать, что делается внутренними механизмами streaming functions.

Вообще, это дурость - накручивать дополнительные фишки на DOM, но если бы меня приперли к стенке, я бы просто сделал специальный wraper для потоковых функций.
 

vlad275

Новичок
Так как я могу узнать почему не идут новости? Какой метод использовать?
Сокеты и curl ?
 

FractalizeR

Новичок
Кто ж знает-то, почему они у вас не идут иногда. Вы же нигде на ошибки не проверяете результат вызова функций. Вставьте в код проверки, чтобы хотя бы проблему можно было бы локализовать. Надо понять, в каком месте они "не идти" начинают.
 

Pigmeich

Новичок
vlad275
какой угодно. Хоть враперы и Дом, хоть курл, хоть чистые сокеты.

И вообще, в такой постановке (с полным отсутсвием дополнительной информации) принято отвечать: "пиши на асме - на нем быстрее".
 

vlad275

Новичок
Я новичок. Как проверку на ошибки реализовать полегче?
 

FractalizeR

Новичок
Ну хотя бы просто проверяя результат выполнения функций:

PHP:
if(!$xmldoc->load($uri)) {
    die('xmldoc->load failed!');
}
 
Сверху