首页 > 原创文章 > 软件开发 > 查看文章

PHP网页报DOMDocument::loadHTML(): Tag header invalid in Entity错误的解决方法

所属分类:软件开发 来源: 丁老师原创 更新时间:2025-03-07 08:25 浏览: 2694 IP属地: 深圳

PHP网站,网页打开不正常,显示“DOMDocument::loadHTML(): Tag header invalid in Entity”错误代码,是怎么回事呢?

其实,这是php程序中,使用了new DOMDocument的loadHTML来解析远程url的html代码,但是因为在解析远程的html代码时遇到了不符合html规范的内容,如HTML5标签(如 <header>、<footer>、<article> 等)在旧版本的html中无效,所以报错了。

要解决这个问题很简单,有很多种方法,我就写两种最简单和直观的解决方法:

方法一:忽略错误

html=file_get_contents("https://example.com");
$dom=new DOMDocument();

//忽略Html解析错误
libxml_use_internal_errors(true);
$dom->loadHTML($html);
//清除错误
libxml_clear_errors();

在解析html内容前,加上libxml_use_internal_errors(true),在解析html后,加上libxml_clear_errors(),这样可以忽略并清除错误,问题就解决就不会报错了。

方法二:添加Html5支持

$html=file_get_contents("https://example.com");

//添加Html5 DOCTYPE声明
$html="<!DOCTYPE html>".$html;
$dom=new DOMDocument();
$dom->loadHTML($html);

通过添加<!DOCTYPE html>声明,告诉DOMDocument 使用 HTML5解析规则,问题也可以解决。

标签:

相关文章

Bagisto使用常见问题与解决方法

Bagisto是一款强大的跨境电商平台软件,很多客户在初次安装和使用时,会或多或少遇到一些解决不了的情况。丁老师整理了一些常见的Bagisto问题以及解决方法以供查阅。问:安装Bagisto时出现"Command compos...

Css3中position:sticky无效...

有同学在前端写css代码时,遇到问题,使用的css3,写的是position:sticky,想要内容滚动到该区域,该区域自动置顶滑动。但一直无效,经过丁老师研究后发现,该区域没有定义高度,而使用position:sticky时,是必须要...

Javascript复制对象改变原值的解决办...

在进行vue开发中,经常会遇到复制对象,赋值新对象后,原对象值被改变的问题,举个例子:let old={ "a":1, "b":2 } let new=old; new['c']=...

使用Visual Studio开发C#程序时...

我们都知道Visual Studio的自动完成功能,可以在开发时,自动提示补充语法、参数等信息,可以方便的协助我们来开发程序,但是有同学发现,在使用VS开发C#程序时,编辑器的自动完成功能很不好用,要么是在正常输入代码时,突然出现提示,...

推荐文章

宝塔"在未指定SSL默认站点时,未开启SSL...

宝塔系统相关问题解决方法

php拼装sql语句,换行查询出错的问题解决

在php代码中,遇到复杂的sql语句,需要拼装sql语句,如:$sql='id 10;' $sql=' and( status in(1,2,3,4,5) and id not in (select id from ...

您的nahimic驱动程序似乎已经过期的解决...

打开电脑的Nahimic软件,提示“您的nahimic驱动程序似乎已经过期,无法启动”,然后需要点击链接更新驱动,但点击进去后,也找不到什么驱动。经过研究发现解决办法:1.使用SDI安装,即Snappy Driver Installer 1...

CSS常用字体及网页引用方式

1.字体列表及引用链接鸿蒙字体 - B 站400 字重 CSS://s1.hdslb.com/bfs/static/jinkela/long/font/regular.css 500 字重 CSS://s1.hdslb.com/bfs/st...