$rss = new DOMDocument();
$rss->load($url);
如果我希望用户提供任何rssfeed链接来获取xml文档,并且用户试图提供任何不包含任何xml文档的随机链接。它肯定会显示错误或警告。
如何验证这种情况?
答案 0 :(得分:4)
使用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();
}
答案 1 :(得分:0)
您可以使用load的返回值来检查错误并使用@
$rss = new DOMDocument();
if (@$rss->load($url) == false) {
//error...
}
答案 2 :(得分:0)
试试这个:
$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();