php html解析器Simple HTML Dom使用說明

來源:互聯網
上載者:User

 

1. 開始使用

首先下載解壓縮,然後將simple_html_dom.php檔案包含進要編寫的指令檔中,載入要處理的html,支援三種模式的html載入,分別是『從url中載入,從字串中載入,從檔案中載入』。

 代碼如下 複製代碼

<?php
require_once('simple_html_dom.php');
//從url載入
$html = file_get_html('http://www.111cn.net');
//從字串載入
$html = str_get_html('<html><body>Hello World!</body></html>');
//從檔案中載入
$html = file_get_html('example.htm');
從字串載入網上檔案需要先從網路下下載,使用cURL比較好一些,需要在php設定檔中開啟php擴充php_curl。

$url = 'http://www.111cn.net';
$ci = curl_init();
curl_setopt($ci,CURLOPT_URL,$url);
curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);

2. 尋找html元素
使用find函數尋找,返回包含對象的數組,常見的尋找如下。

 代碼如下 複製代碼
//尋找超連結元素
$alink = $html->find('a');
//尋找第n個串連元素
$alink = $html->find('a',5);
//尋找id為main的div
$mainDiv = $html->find('div[id=main]');
//尋找所有定義了id的div
$idDiv = $html->find('div[id]');
//尋找所有定義了id的元素
$idAll = $html->find('[id]');
//尋找樣式類為info的元素
$classInfo = $html->find('.info');
//支援嵌套子項目尋找
$ret = $html->find('ul li');
//尋找多個html元素
$ret = $html->find('a,img,p');
//....

3. 其他
可以使用內建的函數來進行元素的定位,返回父元素parent,返回子項目數組children,返回第一個子項目first_child,返回最後一個子項目last_child,返回前一個相鄰元素prev_sibling,返回後一個相鄰元素next_sibling等。

提供簡單的Regex來過濾屬性選取器,類似於[attribute]的格式。

每個對象都有4個基本屬性:
tag — 返回html標籤名
innertext — 返回innerHTML
outertext — 返回outerHTML
plaintext — 返回HTML標籤中的文本

返回元素屬性值

//返回$alink的href值
$link = $alink->href;
通過設定元素的屬性值可以對元素進行添加、修改、刪除操作。

 代碼如下 複製代碼

//刪除url串連
$alink->href = null;
//元素的修改
$ret->outertext = '<div class="nav">' . $ret->outertext . '</div>';
$ret->outertext = '';
$ret->outertext = $ret->outertext . '<div>other</div>';
$ret->outertext = '<div>Welcome</div>' . $ret->outertext;
-EOF-

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.