国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php simple dom html 解析亂碼

php中文網(wǎng)
發(fā)布: 2016-08-08 09:28:17
原創(chuàng)
1541人瀏覽過

1. 亂碼解決

毫無疑問, 一上來就碰到了亂碼問題, 固然我已按文檔所述, 所有的字符使用 UTF-8 編碼:

$html = '<p>你好</p><p><span>立即學習</span>“<a href="https://pan.quark.cn/s/7fc7563c4182" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">PHP免費學習筆記(深入)</a>”;</p>'; $dom = new DOMDocument(); @$dom->loadHTML($html); echo $dom->documentElement->nodeValue;
登錄后復制

可是, 若是改成:

$html = '<p>你好</p><p><span>立即學習</span>“<a href="https://pan.quark.cn/s/7fc7563c4182" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">PHP免費學習筆記(深入)</a>”;</p>'; $dom = new DOMDocument(); @$dom->loadXML($html); echo $dom->documentElement->nodeValue;
登錄后復制

就沒有問題. 后來才發(fā)現(xiàn), 本來 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. 沒有子節(jié)點 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. 轉(zhuǎn)義字符處置懲罰

對文本節(jié)點, 其 nodeValue 要顛末 htmlspeciachars() 轉(zhuǎn)義. 由于讀取 HTML/XML 時, 會對文本進行反轉(zhuǎn)義, 比如 > 在內(nèi)存中已經(jīng)是 >了.

下載源碼:pretty_html.php

Related posts:

  1. C# 版的 SimpleXML
  2. 自架設Apache辦事器過程當中的網(wǎng)頁亂碼問題
  3. if-else對優(yōu)化代碼冗余度的反感化
  4. Wordpress分頁代碼
  5. 用Javascript生成彈出窗口

以上就介紹了php simple dom html 解析亂碼,包括了方面的內(nèi)容,希望對PHP教程有興趣的朋友有所幫助。

PHP速學教程(入門到精通)
PHP速學教程(入門到精通)

PHP怎么學習?PHP怎么入門?PHP在哪學?PHP怎么學才快?不用擔心,這里為大家提供了PHP速學教程(入門到精通),有需要的小伙伴保存下載就能學習啦!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓,幫助PHP學習者快速成長!
關(guān)注服務號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號