php simple dom html 解析乱码
来源:互联网 发布:windows loader 2.4.0 编辑:程序博客网 时间:2024/06/05 00:56
1. 乱码解决
毫无疑问, 一上来就碰到了乱码问题, 固然我已按文档所述, 所有的字符使用 UTF-8 编码:
$html = '<p>你好</p>'; $dom = new DOMDocument(); @$dom->loadHTML($html); echo $dom->documentElement->nodeValue;
可是, 若是改成:
$html = '<p>你好</p>'; $dom = new DOMDocument(); @$dom->loadXML($html); echo $dom->documentElement->nodeValue;
就没有问题. 后来才发现, 本来 loadHTML 会依靠 HTML 中的声明 meta 标签. 假如没有这样的标签, 就看成 iso-8859-1 字符集, 所以乱码. 要解决, 就给字符串加上如许的一个标签在头部:
$meta = '<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>'; @$dom->loadHTML($meta . $html);
2. 递归
HTML/XML 是递归布局, 所以必然会递归遍历:
function _pretty_html_node($node){ // 递归终止前提 // 1. XML_TEXT_NODE // 2. XML_ELEMENT_NODE // 3. 没有子节点 foreach($node->childNodes as $n){ $child_text .= _pretty_html_node($n); } // 然后对分歧的标签做不同的处置 switch($tag){ case 'a': $href = $node->getAttribute('href'); $text .= "<a href=\"$href\">$child_text</a>"; ... } return $text; }
3. 转义字符处置惩罚
对文本节点, 其 nodeValue 要颠末 htmlspeciachars() 转义. 由于读取 HTML/XML 时, 会对文本进行反转义, 比如 > 在内存中已经是 >了.
下载源码:pretty_html.php
Related posts:
- C# 版的 SimpleXML
- 自架设Apache办事器过程当中的网页乱码问题
- if-else对优化代码冗余度的反感化
- Wordpress分页代码
- 用Javascript生成弹出窗口
0 0
- php simple dom html 解析乱码
- 【PHP HTML DOM解析器】PHP Simple HTML DOM Parser
- PHP Simple HTML DOM解析器
- php的html解析工具 PHP Simple HTML DOM Parser
- PHP Simple HTML DOM Parser 強力解析html工具
- 使用php simple html dom parser解析html标签
- PHP Simple HTML DOM解析器使用入门
- PHP Simple HTML DOM解析器使用入门
- PHP Simple HTML DOM解析器使用入门
- PHP Simple HTML DOM解析器使用入门
- PHP Simple HTML DOM解析器使用入门
- PHP Simple HTML DOM解析器使用入门
- PHP Simple HTML DOM解析器使用入门
- PHP Simple HTML DOM解析器使用入门
- 使用Simple-Html-Dom解析HTML文件
- 超好的HTML解析工具PHP Simple HTML DOM Parser 中文手册
- 超好的HTML解析工具PHP Simple HTML DOM Parser 中文手册
- 一个不错的html解析工具PHP Simple HTML DOM Parser
- 存储IO性能太差,导致数据库hang住
- 鸟哥linux私房菜笔记(第一部分 Linux的规划与安装)
- 九度1019 简单计算器
- 不协调的世界(3)-高速公路
- Solr开发文档
- php simple dom html 解析乱码
- 不知不觉,我也成为入门弟子
- uva 10817 - Headmaster's Headache
- FTP协议速记
- N个线程顺序输出,循环M遍
- Win7下安装CentOS双系统说明
- javascript 选择器
- windows 2008 64位在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
- 【数据挖掘】web网站日志分析---笔记