基于simple_html_dom的使用小结


Posted in PHP onJuly 01, 2013
<P>简单范例
<?phpinclude "simple_html_dom.php" ;    //加载simple_html_dom.php文件
$html = file_get_html('http://www.google.com/');  //获取html$dom = new simple_html_dom();    //new simple_html_dom对象$dom->load($html)      //加载html// Find all images foreach($dom->find('img') as $element) {   //获取img标签数组       echo $element->src . '<br>';    //获取每个img标签中的src}// Find all links foreach($dom->find('a') as $element){    //获取a标签的数组       echo $element->href . '<br>';    //获取每个a标签中的href}</P><P>
$html = file_get_html('http://slashdot.org/');   //获取html$dom = new simple_html_dom();    //new simple_html_dom对象$dom->load($html);     //加载html// Find all article blocksforeach($dom->find('div.article') as $article) {       $item['title']     = $article->find('div.title', 0)->plaintext; //plaintext 获取纯文本    $item['intro']    = $article->find('div.intro', 0)->plaintext;    $item['details'] = $article->find('div.details', 0)->plaintext;    $articles[] = $item;}print_r($articles);</P><P>}</P><P>
// Create DOM from string</P><P>$html = str_get_html('<div id="hello">Hello</div><div id="world">World</div>');
$dom = new simple_html_dom();     //new simple_html_dom对象</P><P>$dom->load($html);      //加载html
$dom->find('div', 1)->class = 'bar';    //class = 赋值 给第二个div的class赋值</P><P>$dom->find('div[id=hello]', 0)->innertext = 'foo';   //innertext内部文本</P><P>echo $dom; </P><P>// Output: <div id="hello">foo</div><div id="world" class="bar">World</div></P><P> </P><P>DOM methods & properties 
Name Description 
void __construct ( [string $filename] ) 构造函数,将文件名参数将自动加载内容,无论是文本或文件/ url。 
 string plaintext 纯文本 
void clear () 清理内存 
void load ( string $content ) 加载内容 
string save ( [string $filename] ) Dumps the internal DOM tree back into a string. If the $filename is set, result string will save to file. 
void load_file ( string $filename ) Load contents from a from a file or a URL. 
void set_callback ( string $function_name ) 设置一个回调函数。 
mixed find ( string $selector [, int $index] ) 找到元素的CSS选择器。返回第n个元素对象如果索引设置,否则返回一个数组对象。 </P>
<P> 4.find 方法详细介绍</P><P>
find ( string $selector [, int $index] ) 
// Find all anchors, returns a array of element objects a标签数组
$ret = $html->find('a');</P><P>// Find (N)th anchor, returns element object or null if not found (zero based)第一个a标签
$ret = $html->find('a', 0);</P><P>// Find lastest anchor, returns element object or null if not found (zero based)最后一个a标签
$ret = $html->find('a', -1); </P><P>// Find all <div> with the id attribute 
$ret = $html->find('div[id]');</P><P>// Find all <div> which attribute id=foo
$ret = $html->find('div[id=foo]'); </P><P>
// Find all element which id=foo
$ret = $html->find('#foo');</P><P>// Find all element which class=foo
$ret = $html->find('.foo');</P><P>// Find all element has attribute id
$ret = $html->find('*[id]'); </P><P>// Find all anchors and images a标签与img标签数组 
$ret = $html->find('a, img');  </P><P>// Find all anchors and images with the "title" attribute
$ret = $html->find('a[title], img[title]');</P><P>
// Find all <li> in <ul> 
$es = $html->find('ul li'); ul标签下的li标签数组</P><P>// Find Nested <div> tags
$es = $html->find('div div div');  div标签下div标签下div标签数组</P><P>// Find all <td> in <table> which class=hello 
$es = $html->find('table.hello td'); table标签下td标签数组</P><P>// Find all td tags with attribite align=center in table tags 
$es = $html->find(''table td[align=center]'); </P><P> 5.Element  的方法
$e = $html->find("div", 0);                              //$e 所拥有的方法如下表所示
Attribute Name Usage 
$e->tag 标签 
$e->outertext 外文本 
$e->innertext 内文本 
$e->plaintext 纯文本 </P><P> </P><P>// Example
$html = str_get_html("<div>foo <b>bar</b></div>"); 
echo $e->tag; // Returns: " div"
echo $e->outertext; // Returns: " <div>foo <b>bar</b></div>"
echo $e->innertext; // Returns: " foo <b>bar</b>"
echo $e->plaintext; // Returns: " foo bar"</P><P>6.DOM traversing 方法
Method Description 
mixed$e->children ( [int $index] ) 子元素 
element$e->parent () 父元素 
element$e->first_child () 第一个子元素 
element$e->last_child () 最后一个子元素 
element$e->next_sibling () 后一个兄弟元素 
element$e->prev_sibling () 前一个兄弟元素 </P><P>
// Example
echo $html->find("#div1", 0)->children(1)->children(1)->children(2)->id;
// or 
echo $html->getElementById("div1")->childNodes(1)->childNodes(1)->childNodes(2)->getAttribute('id');
</P>
PHP 相关文章推荐
探讨file_get_contents与curl效率及稳定性的分析
Jun 06 PHP
php读取纯真ip数据库使用示例
Jan 26 PHP
codeigniter中测试通过的分页类示例
Apr 17 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
SAE实时日志接口SDK用法示例
Oct 09 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
Apr 20 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
PHP双向链表定义与用法示例
Jan 31 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
php 中self,this的区别和操作方法实例分析
Nov 04 PHP
php传值和传引用的区别点总结
Nov 19 PHP
解析php php_openssl.dll的作用
Jul 01 #PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 #PHP
浅析PKI加密解密 OpenSSL
Jul 01 #PHP
php pki加密技术(openssl)详解
Jul 01 #PHP
使用php实现快钱支付功能(涉及到接口)
Jul 01 #PHP
在wamp集成环境下升级php版本(实现方法)
Jul 01 #PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 #PHP
You might like
PHP 字符串操作入门教程
2006/12/06 PHP
PHP 遍历XP文件夹下所有文件
2008/11/27 PHP
PHP函数常用用法小结
2010/02/08 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
javascript实现简单的ajax封装示例
2016/12/28 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
Python 开发Activex组件方法
2009/11/08 Python
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
网红编程语言Python将纳入高考你怎么看?
2018/06/07 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
Python实现一个数组除以一个数的例子
2019/07/20 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
销售工作岗位职责
2013/12/24 职场文书
二手书店创业计划书
2014/01/16 职场文书
优秀党员先进材料
2014/12/18 职场文书
超市工作总结范文2014
2014/12/19 职场文书
质量承诺书格式范文
2015/04/28 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python
基于Python实现的购物商城管理系统
2021/04/27 Python