$rss = new DOMDocument();
$rss->load($url);
ユーザーが xml ドキュメントを取得するために任意の rssfeed リンクを提供することを期待している場合、ユーザーは xml ドキュメントを含まないランダムなリンクを提供しようとしています。確かにエラーや警告が表示されます。
この状況を確認するにはどうすればよいですか?
libxml_use_internal_errors
自分でエラーを処理するために使用します。http://php.net/manual/de/function.libxml-use-internal-errors.phpの例
// enable user error handling
libxml_use_internal_errors(true);
// load the document
$doc = new DOMDocument;
if (!$doc->load('file.xml')) {
foreach (libxml_get_errors() as $error) {
// handle errors here
}
libxml_clear_errors();
}
これを試して:
$errors = array();
set_error_handler(function ($number, $error) use (&$errors) {
if (preg_match('#^DOMDocument::load\(\):#', $error)) {
$errors[] = $error;
}
});
$url = '';
$doc = new DOMDocument();
if ($doc->load($url) === false) {
// handle errors from $errors
}
restore_error_handler();
load の戻り値を使用してエラーをチェックし、出力を抑制することができます@
$rss = new DOMDocument();
if (@$rss->load($url) == false) {
//error...
}