Feedparser: Store libXML fatal error messages in an array, repair error reporting

This commit is contained in:
wltb 2013-09-26 19:56:45 +02:00
parent 4d49863f65
commit 54f23d38a6
1 changed files with 8 additions and 3 deletions

View File

@ -2,6 +2,7 @@
class FeedParser { class FeedParser {
private $doc; private $doc;
private $error; private $error;
private $libxml_errors = array();
private $items; private $items;
private $link; private $link;
private $title; private $title;
@ -63,12 +64,12 @@ class FeedParser {
} }
} }
$this->error = "";
if ($error) { if ($error) {
foreach (libxml_get_errors() as $error) { foreach (libxml_get_errors() as $error) {
if ($error->level == LIBXML_ERR_FATAL) { if ($error->level == LIBXML_ERR_FATAL) {
if(!isset($this->error)) //currently only the first error is reported
$this->error = $this->format_error($error); $this->error = $this->format_error($error);
break; //break here because currently we only show one error $this->libxml_errors [] = $this->format_error($error);
} }
} }
} }
@ -216,6 +217,10 @@ class FeedParser {
return $this->error; return $this->error;
} }
function errors() {
return $this->libxml_errors;
}
function get_link() { function get_link() {
return $this->link; return $this->link;
} }