我需要解析一些HTML文件,但是它们的格式不正确,PHP向其输出警告。我想以编程方式避免这种调试/警告行为。请指教。谢谢!
码:
// create a DOM document and load the HTML data
$xmlDoc = new DomDocument;
// this dumps out the warnings
$xmlDoc->loadHTML($fetchResult);
这个:
@$xmlDoc->loadHTML($fetchResult)
可以禁止显示警告,但是如何以编程方式捕获这些警告?
您可以使用安装临时错误处理程序 set_error_handler
class ErrorTrap {
protected $callback;
protected $errors = array();
function __construct($callback) {
$this->callback = $callback;
}
function call() {
$result = null;
set_error_handler(array($this, 'onError'));
try {
$result = call_user_func_array($this->callback, func_get_args());
} catch (Exception $ex) {
restore_error_handler();
throw $ex;
}
restore_error_handler();
return $result;
}
function onError($errno, $errstr, $errfile, $errline) {
$this->errors[] = array($errno, $errstr, $errfile, $errline);
}
function ok() {
return count($this->errors) === 0;
}
function errors() {
return $this->errors;
}
}
用法:
// create a DOM document and load the HTML data
$xmlDoc = new DomDocument();
$caller = new ErrorTrap(array($xmlDoc, 'loadHTML'));
// this doesn't dump out any warnings
$caller->call($fetchResult);
if (!$caller->ok()) {
var_dump($caller->errors());
}
本文向大家介绍使用PHP的HTML DOMDocument解析HTML,包括了使用PHP的HTML DOMDocument解析HTML的使用技巧和注意事项,需要的朋友参考一下 可以通过以下代码获取<div>标记内的<div>标记内的文本,其中<div>内的class =“ main”内- 示例 输出结果 这将产生以下输出-
然后我在Jsoup as中将xpath转换为CSS查询,以便稍后提取特定元素: 代码的执行没有正确定位我,而是定位到Firebug在XPath中引用的元素: 从最后来看,第一个区别是: 有没有任何替代Jsoup的方法可以处理这类问题?
问题内容: 我正在使用jQuery的ajax方法来获取静态JSON文件。数据是从本地文件系统加载的,因此没有服务器,因此无法更改MIME类型。 我相信我的JSON格式正确: 我的ajax调用很简单: 如果我用文档标签包装JSON: 正如上面提到的另一个Stack Overflow问题中提到的那样,ajax调用失败,并出现解析错误。 因此:在读取客户端JSON文件时,有没有一种方法可以避免Firef
为了避免在模式验证过程中出现PHP警告,可以使用和
问题内容: 这里的PHP解析有点新,但是我似乎无法让PHP的DomDocument返回显然是可识别的节点。加载的HTML将来自“ .net”,因此不一定能保证XML的合规性,但我尝试以下操作: 尽管我没有收到任何错误,但我仅收到以下内容作为输出: 我应该无法查找标签,因为它确实具有ID吗? 问题答案: 该手册解释了为什么: 为了使此功能起作用,您将需要使用DOMElement->setIdAttr
问题内容: 我一直在尝试解析HTML5代码,以便可以在代码内设置属性/值,但是DOMDocument(PHP5.3)似乎不支持诸如和的标记。 有什么方法可以在PHP中将其解析为HTML并处理代码? 复制代码: 错误 警告:DOMDocument :: loadHTML():在实体中的标签导航无效,第17行在/home/wbkrnl/public_html/new- mvc/1.php中的第4行 警