$rss = new DOMDocument();
$rss->load($url);
如果我希望用戶給任何rssfeed鏈接來獲取xml文檔,並且用戶試圖給出任何不包含任何xml文檔的任意鏈接。它肯定會顯示錯誤或警告。如何驗證DOMDocument對象
我該如何驗證這種情況?
$rss = new DOMDocument();
$rss->load($url);
如果我希望用戶給任何rssfeed鏈接來獲取xml文檔,並且用戶試圖給出任何不包含任何xml文檔的任意鏈接。它肯定會顯示錯誤或警告。如何驗證DOMDocument對象
我該如何驗證這種情況?
使用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();
}
您可以使用負載的返回值來檢查錯誤,並抑制輸出與@
$rss = new DOMDocument();
if (@$rss->load($url) == false) {
//error...
}
即使現在其顯示警告 「警告:DOM文檔::負載()[domdocument.load]:的EntityRef:期待」。 –
你用set_error_handler設置了自己的錯誤處理程序嗎? – Philipp
實施例嘗試這種情況:
$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();
非常感謝你redreggae。你節省了我的時間。有效。 –