欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

PHP中怎么利用DOMDocument處理HTML、XML文檔

PHP中怎么利用DOMDocument處理HTML、XML文檔,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

專注于為中小企業(yè)提供成都網(wǎng)站建設、網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)南崗免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。

 

PHP中使用DOMDocument來處理HTML、XML文檔

其實從PHP5開始,PHP就為我們提供了一個強大的解析和生成XML相關操作的類,也就是我們今天要講的 DOMDocument 類。不過我估計大部分人在爬取網(wǎng)頁時還是會喜歡用正則去解析網(wǎng)頁內容,學了今天的這個類下回就可以嘗試下使用這個PHP自帶的方式來進行解析分析了。

 

解析HTML

// 解析 HTML
$baidu = file_get_contents('https://www.baidu.com');

$doc = new DOMDocument();
@$doc->loadHTML($baidu);

// 百度輸出框
$inputSearch = $doc->getElementById('kw');
var_dump($inputSearch);

// object(DOMElement)#2 
//     ....

echo $inputSearch->getAttribute('name'), PHP_EOL; // wd

// 獲取所有圖片的鏈接
$allImageLinks = [];
$imgs = $doc->getElementsByTagName('img');
foreach($imgs as $img){
    $allImageLinks[] = $img->getAttribute('src');
}

print_r($allImageLinks);

// Array
// (
//     [0] => //www.baidu.com/img/baidu_jgylogo3.gif
//     [1] => //www.baidu.com/img/bd_logo.png
//     [2] => /upload/otherpic65/761644.gif
// )

// 利用 parse_url 分析鏈接
foreach($allImageLinks as $link){
    print_r(parse_url($link));
}

// Array
// (
//     [host] => www.baidu.com
//     [path] => /img/baidu_jgylogo3.gif
// )
// Array
// (
//     [host] => www.baidu.com
//     [path] => /img/bd_logo.png
// )
// Array
// (
//     [scheme] => http
//     [host] => s1.bdstatic.com
//     [path] => /r/www/cache/static/global/img/gs_237f015b.gif
// )
 

是不是感覺好清晰,好有面向對象的感覺。就像第一次使用 ORM庫 來進行數(shù)據(jù)庫操作一樣的感覺。我們一段一段來看。

$baidu = file_get_contents('https://www.baidu.com');

$doc = new DOMDocument();
@$doc->loadHTML($baidu);
 

首先是加載文檔內容,這個比較好理解,直接使用 loadHTML() 方法加載 HTML 內容。它還提供了其它的幾個方法,分別是:load() 從一個文件加載XML;loadXML() 從字符串加載XML;loadHTMLFile() 從文件加載HTML。

// 百度輸出框
$inputSearch = $doc->getElementById('kw');
var_dump($inputSearch);

// object(DOMElement)#2 
//     ....

echo $inputSearch->getAttribute('name'), PHP_EOL; // wd
 

接下來我們使用和前端 JS 一樣的 DOM 操作API來操作HTML里面的元素。這個例子中就是獲取百度的文本框,直接使用 getElementById() 方法獲得id為指定內容的 DOMElement 對象。然后就可以獲取它的值、屬性之類的內容了。

// 獲取所有圖片的鏈接
$allImageLinks = [];
$imgs = $doc->getElementsByTagName('img');
foreach($imgs as $img){
    $allImageLinks[] = $img->getAttribute('src');
}

print_r($allImageLinks);

// Array
// (
//     [0] => //www.baidu.com/img/baidu_jgylogo3.gif
//     [1] => //www.baidu.com/img/bd_logo.png
//     [2] => /upload/otherpic65/761644.gif
// )

// 利用 parse_url 分析鏈接
foreach($allImageLinks as $link){
    print_r(parse_url($link));
}

// Array
// (
//     [host] => www.baidu.com
//     [path] => /img/baidu_jgylogo3.gif
// )
// Array
// (
//     [host] => www.baidu.com
//     [path] => /img/bd_logo.png
// )
// Array
// (
//     [scheme] => http
//     [host] => s1.bdstatic.com
//     [path] => /r/www/cache/static/global/img/gs_237f015b.gif
// )
 

這一段例子則是獲取HTML文檔中所有的圖片鏈接。相比正則來說,是不是方便很多,而且代碼本身就是自解釋的,不用考慮正則的匹配失效的問題。配合另外一個PHP中自帶的 parse_url() 方法也能非常方便地對鏈接進行分析,提取自己想要的內容。

XML的解析和對HTML的解析也是類似的,都使用 DOMDocument 和 DOMElement 提供的這個方法接口就可以很方便的進行解析了。那么我們想要生成一個標準格式的XML呢?當然也非常的簡單,不需要再去拼接字符串了,使用這個類一樣的進行對象化的操作。

 

生成一個XML

// 生成一個XML文檔
$xml = new DOMDocument('1.0', 'UTF-8');

$node1 = $xml->createElement('First', 'This is First Node.');
$node1->setAttribute('type', '1');

$node2 = $xml->createElement('Second');
$node2->setAttribute('type', '2');
$node2_child = $xml->createElement('Second-Child', 'This is Second Node Child.');
$node2->appendChild($node2_child);

$xml->appendChild($node1);
$xml->appendChild($node2);
print $xml->saveXML();

/*
<?xml version="1.0" encoding="UTF-8"?>
<First type="1">This is First Node.</First>
<Second type="2"><Second-Child>This is Second Node Child.</Second-Child></Second>
*/

其實只要有一點點的前端 JS 的基礎都不難看出這段代碼的含義。使用 createElement() 方法創(chuàng)造 DOMElement 對象,然后就可以為它添加屬性和內容。使用 appendChild() 方法就可以為當前的 DOMElement 或者 DOMDocument 添加下級節(jié)點。最后使用 saveXML() 就能夠生成標準的XML格式內容了。

關于PHP中怎么利用DOMDocument處理HTML、XML文檔問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關知識。

當前標題:PHP中怎么利用DOMDocument處理HTML、XML文檔
當前URL:http://aaarwkj.com/article46/jpodhg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設商城網(wǎng)站、企業(yè)建站網(wǎng)站維護、微信小程序、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿網(wǎng)站制作
日韩视频免费看一区二区| 国产九色91中文在线视频| 草草视频在线观看网站| 蜜桃一区二区三区免费| 国产欧美日韩亚洲综合在线| 久久久之久亚州精品露出| 亚洲国产日韩中文字幕| 夜夜操狠狠操天天摸| 欧美黑人少妇高潮喷水| 亚洲av成人在线一区二区| 国产男女猛烈无遮挡av| 国产深夜福利在线观看| 青青草原天堂在线免费观看| 高潮国产精品一区二区| 人妻巨乳一区二区三区| 激情偷拍一区二区三区视频| 极品少妇一级人妻av| 亚洲精品成人一区不卡| 日韩精品精美视频在线观看 | 日韩人妻有码中文字幕| 野花日本免费高清完整| 99久久精品国产熟女| 在线观看视频网站一卡二卡| 日韩爱爱特级视频中文字幕| 亚洲成人av福利网站| 麻豆蜜桃精品视频在线观看| 亚洲综合实力最强的国家| 亚洲乱码中文字幕人妻| 国产精品久久久久精品三级中文国 | 久久免费国产精品电影| 一区二区三区高清人妻日本| 成人在线观看av毛片| 亚洲国产精品一区一区| 国产成人亚洲精品午夜国产馆| 国产精品无遮挡猛进猛出| 欧美日韩另类国产综合| 国产男女猛烈无遮挡av| 亚洲黄色av一区二区三区| 久久激情日本人妻av免费| 亚洲综合香蕉在线视频| 精品午夜免费福利视频|