首先,抱歉我的英语。
我正在使用HTML解析器,我会跳过图像和其他可下载的内容进行解析。
我尝试了一些变化,这是最后一个:
$doc = new DOMDocument();
@$doc->loadHTMLFile("http://exampledomain.com/images/img3.JPG");
if($doc->hasChildNodes){break;}
在搜索解决方案后,我尝试了这个:
$doc = new DOMDocument();
@$doc->loadHTMLFile("http://exampledomain.com/images/img3.JPG");
var_dump($doc->childNodes->length);
foreach($doc->childNodes as $child){
var_dump($child->nodeName);
}
结果:
2
html
html
答案 0 :(得分:0)
你可以做的第一件事就是检查jpg,gif,png,js等的文件名,不要试图在非HTML文件上运行DOMDocument::loadHTMLFile
。由于某种原因,这个函数似乎试图加载所有东西(可能是因为它设计用于处理无效的HTML)所以你不能依赖函数的输出(true
成功,false
失败)
这样的事情可能有所帮助:
if (false === preg_match('/^.*\.(jpg|jpeg|png|gif)$/i', $file_name)) {
$doc = new DOMDocument();
$doc->loadHTMLFile($file_name);
// more code here
}