欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php基于DOMDocument操作頁(yè)面元素實(shí)例 原創(chuàng)

原創(chuàng)  更新時(shí)間:2023年06月27日 09:21:15   原創(chuàng) 投稿:shichen2014  
這篇文章主要介紹了php基于DOMDocument操作頁(yè)面元素,結(jié)合實(shí)例形式分析了php使用DOMDocument進(jìn)行頁(yè)面元素獲取與屬性修改的相關(guān)操作技巧,需要的朋友可以參考下

問(wèn)題

有如下代碼,要求不使用正則表達(dá)式的情況下修改鏈接為 http://www.dbjr.com.cn/softs/ 

<p>歡迎訪(fǎng)問(wèn)<span>腳本之家</span>
    <a href="http://www.dbjr.com.cn/">軟件下載</a>
</p>

解決方法

筆者使用了DOMDocument進(jìn)行操作,實(shí)例如下:

<?php
header('Content-Type: text/html; charset=utf-8');
// 原始HTML代碼
$cont = '<p>歡迎訪(fǎng)問(wèn)<span>腳本之家</span><a href="http://www.dbjr.com.cn/">軟件下載</a></p>';
// 創(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','http://www.dbjr.com.cn/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>歡迎訪(fǎng)問(wèn)<span>腳本之家</span><a href="http://www.dbjr.com.cn/softs/" 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ò)展如下:

<?php
header('Content-Type: text/html; charset=utf-8');
//echo $codeid = date('YmdHis').mt_rand(1000,9999);
// 原始HTML代碼
$cont = '<p>歡迎訪(fǎng)問(wèn)<span>腳本之家</span><a href="http://www.dbjr.com.cn/">軟件下載</a></p>';
// 創(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','http://www.dbjr.com.cn/softs/');
// 給a鏈接添加rel="nofollow"屬性
$aElem[0]->setAttribute('rel','nofollow');
//修改span元素的innerHtml值
$spanElem = $dom->getElementsByTagName('span');
$spanElem[0]->nodeValue = '【腳本之家軟件下載】===>';
$content = $dom->saveHTML();
//$content = mb_convert_encoding($content, 'UTF-8', 'ISO-8859-1');
// 輸出修改后的HTML代碼
echo $content;
?>

此時(shí)再次訪(fǎng)問(wèn),頁(yè)面元素就變成了:

<p>歡迎訪(fǎng)問(wèn)<span>【腳本之家軟件下載】===&gt;</span><a href="http://www.dbjr.com.cn/softs/" rel="nofollow">軟件下載</a></p>

相關(guān)文章

  • 使用Codeigniter重寫(xiě)insert的方法(推薦)

    使用Codeigniter重寫(xiě)insert的方法(推薦)

    下面小編就為大家?guī)?lái)一篇使用Codeigniter重寫(xiě)insert的方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • 利用curl 多線(xiàn)程 模擬 并發(fā)的詳解

    利用curl 多線(xiàn)程 模擬 并發(fā)的詳解

    本篇文章是對(duì)利用curl多線(xiàn)程模擬并發(fā)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php+html5基于websocket實(shí)現(xiàn)聊天室的方法

    php+html5基于websocket實(shí)現(xiàn)聊天室的方法

    這篇文章主要介紹了php+html5基于websocket實(shí)現(xiàn)聊天室的方法,實(shí)例分析了php結(jié)合html5的websocket通訊的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 使用Zttp簡(jiǎn)化Guzzle 調(diào)用

    使用Zttp簡(jiǎn)化Guzzle 調(diào)用

    在 PHP 的項(xiàng)目中,如果你需要通過(guò)代碼來(lái)發(fā)起 HTTP 請(qǐng)求,相信很多人對(duì) GuzzleHttp 這個(gè) Package 很熟悉,然而其實(shí)在使用 Guzzle 的時(shí)候,我們依然可以做得更簡(jiǎn)便一點(diǎn)的,下面我們就來(lái)看下今天的主角--Zhttp
    2017-07-07
  • 深入理解php中unset()

    深入理解php中unset()

    這篇文章主要介紹了深入理解php中unset(),對(duì)unset感興趣的同學(xué),可以參考下
    2021-04-04
  • 使用PHP操作ElasticSearch搜索引擎詳解

    使用PHP操作ElasticSearch搜索引擎詳解

    ElasticSearch是一個(gè)基于Lucene的開(kāi)源搜索引擎,它提供了強(qiáng)大的全文搜索和分析功能,本文將深入探討如何使用PHP操作ElasticSearch搜索引擎,包括安裝ElasticSearch、使用ElasticSearch PHP客戶(hù)端庫(kù)進(jìn)行索引管理和搜索操作等,需要的朋友可以參考下
    2024-04-04
  • PHP防止表單重復(fù)提交的幾種常用方法匯總

    PHP防止表單重復(fù)提交的幾種常用方法匯總

    這篇文章主要介紹了PHP防止表單重復(fù)提交的幾種常用方法匯總,在PHP項(xiàng)目開(kāi)發(fā)中有不錯(cuò)的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-08-08
  • 如何直接訪(fǎng)問(wèn)php實(shí)例對(duì)象中的private屬性詳解

    如何直接訪(fǎng)問(wèn)php實(shí)例對(duì)象中的private屬性詳解

    這篇文章主要給大家介紹了關(guān)于如何直接訪(fǎng)問(wèn)php實(shí)例對(duì)象中private屬性的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • php中filter_input函數(shù)用法分析

    php中filter_input函數(shù)用法分析

    這篇文章主要介紹了php中filter_input函數(shù)用法,實(shí)例分析了采用filter_input函數(shù)過(guò)濾各種外部輸入的方法,對(duì)于PHP程序設(shè)計(jì)來(lái)說(shuō)具有不錯(cuò)的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • PHP實(shí)現(xiàn)抓取HTTPS內(nèi)容

    PHP實(shí)現(xiàn)抓取HTTPS內(nèi)容

    這篇文章主要介紹了PHP實(shí)現(xiàn)抓取HTTPS內(nèi)容,以及遇到的問(wèn)題的解決方法,需要的朋友可以參考下
    2014-12-12

最新評(píng)論