文章詳情頁(yè)
php基于DOMDocument操作頁(yè)面元素實(shí)例 原創(chuàng)
瀏覽:49日期:2022-06-14 08:05:01
問(wèn)題
有如下代碼,要求不使用正則表達(dá)式的情況下修改鏈接為 https://www.jb51.net/softs/
<p>歡迎訪問(wèn)<span>好吧啦網(wǎng)</span> <a Content-Type: text/html; charset=utf-8');// 原始HTML代碼$cont = '<p>歡迎訪問(wèn)<span>好吧啦網(wǎng)</span><a ;// 創(chuàng)建DOMDocument對(duì)象$dom = new DOMDocument();//$dom->encoding = 'UTF-8';//@$dom->loadHTML($cont,LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);@$dom->loadHTML(mb_convert_encoding($cont, 'HTML-ENTITIES','UTF-8'),LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);$aElem = $dom->getElementsByTagName('a');$aElem[0]->setAttribute('href','https://www.jb51.net/softs/');// 給a鏈接添加rel='nofollow'屬性$aElem[0]->setAttribute('rel','nofollow');$content = $dom->saveHTML();//$content = mb_convert_encoding($content, 'UTF-8', 'ISO-8859-1');// 輸出修改后的HTML代碼echo $content;?>運(yùn)行上述代碼,則頁(yè)面源碼即被修改為:
<p>歡迎訪問(wèn)<span>好吧啦網(wǎng)</span><a rel='nofollow'>軟件下載</a></p>這里要注意:loadHTML載入html文本的時(shí)候,需要指定編碼,筆者這里使用的是mb_convert_encoding($cont, 'HTML-ENTITIES','UTF-8') 進(jìn)行編碼轉(zhuǎn)換,另外筆者所測(cè)試網(wǎng)上搜索到的$dom->encoding = 'UTF-8'; 以及 $content = mb_convert_encoding($content, 'UTF-8', 'ISO-8859-1');???均未起到作用。
補(bǔ)充此外,修改元素innerHtml屬性也很簡(jiǎn)單,只需要設(shè)置其nodeValue值即可,上述示例繼續(xù)擴(kuò)展如下:
<?phpheader('Content-Type: text/html; charset=utf-8');//echo $codeid = date('YmdHis').mt_rand(1000,9999);// 原始HTML代碼$cont = '<p>歡迎訪問(wèn)<span>好吧啦網(wǎng)</span><a ;// 創(chuàng)建DOMDocument對(duì)象$dom = new DOMDocument();//$dom->encoding = 'UTF-8';//@$dom->loadHTML($cont,LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);@$dom->loadHTML(mb_convert_encoding($cont, 'HTML-ENTITIES','UTF-8'),LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);$aElem = $dom->getElementsByTagName('a');$aElem[0]->setAttribute('href','https://www.jb51.net/softs/');// 給a鏈接添加rel='nofollow'屬性$aElem[0]->setAttribute('rel','nofollow');//修改span元素的innerHtml值$spanElem = $dom->getElementsByTagName('span');$spanElem[0]->nodeValue = '【好吧啦網(wǎng)軟件下載】===>';$content = $dom->saveHTML();//$content = mb_convert_encoding($content, 'UTF-8', 'ISO-8859-1');// 輸出修改后的HTML代碼echo $content;?>此時(shí)再次訪問(wèn),頁(yè)面元素就變成了:
<p>歡迎訪問(wèn)<span>【好吧啦網(wǎng)軟件下載】===></span><a rel='nofollow'>軟件下載</a></p> 標(biāo)簽:
PHP
相關(guān)文章:
1. php實(shí)現(xiàn)當(dāng)前用戶在線人數(shù)2. PHP擴(kuò)展之針對(duì)搜索引擎的擴(kuò)展(二)—— Sphinx簡(jiǎn)介、安裝及使用3. PHP設(shè)計(jì)模式入門(mén)之迭代器模式原理與實(shí)現(xiàn)方法分析4. php設(shè)計(jì)模式之策略模式實(shí)例分析【星際爭(zhēng)霸游戲案例】5. PHP基礎(chǔ)之流程控制4——for/foreach6. PHP結(jié)構(gòu)型模式之裝飾器模式7. php bugs代碼審計(jì)基礎(chǔ)詳解8. PHP內(nèi)核了解:生命周期及運(yùn)行模式9. php中unable to fork報(bào)錯(cuò)簡(jiǎn)單解決方法10. PHP內(nèi)核探索 —— 解釋器的執(zhí)行過(guò)程:引擎是如何執(zhí)行PHP代碼的
排行榜
