php方面, 网络有很多成熟易用的DOM处理工具, 对比了好几个, 一般都是通过DOM选择器来定位要处理的内容. 也都可以选择标签属性, 如果你还在用PHP的原始函数来处理html吗, 那就太落后了. 这些dom处理工具比自己用PHP函数来处理不知道要高效果多少倍.
这里介绍一下比较简单易用的dom处理工具 – simplehtmldom. 主要是它小巧, 一个文件就行, 易用, 你很快就可以明白如何使用. 如果你只是简单处理html, 或者做一些提取hmtl内容的工作, 这个完全够用.
第一步: 就是要加载simplehtmldom的类. 它提供3种加载方法, 一种是直接字串, 一种是提供URL, 还有一种就是加载html文件.
// Create a DOM object from a string
$html = str_get_html(‘<html><body>Hello!</body></html>’);// Create a DOM object from a URL
$html = file_get_html(‘http://www.google.com/’);// Create a DOM object from a HTML file
$html = file_get_html(‘test.htm’);
加载类以后就可以处理html了. 如果要选择特定的标签可ID标签, 只要使用Find方法就可以了.
// Find all anchors, returns a array of element objects
$ret = $html->find(‘a‘);// Find (N)th anchor, returns element object or null if not found (zero based)
$ret = $html->find(‘a‘, 0);// Find lastest anchor, returns element object or null if not found (zero based)
$ret = $html->find(‘a‘, -1);// Find all <div> with the id attribute
$ret = $html->find(‘div[id]‘);// Find all <div> which attribute id=foo
$ret = $html->find(‘div[id=foo]‘);
这里选择以后, $ret还是一对象, 要通过foreach才能得到内容.
// find all div tags with id=gbar
foreach($html->find(‘div#gbar’) as $e)
echo $e->innertext . ‘<br>’;// find all span tags with
foreach($html->find(‘span.gb1’) as $e)
echo $e->outertext . ‘<br>’;
上面的代码差不多就能明白simplehtmldom的主要功能了. div#gbar就是选择ID为gbar的DIV标签, span.gb1就是选择CSS类为gb1的span, outertext和innertext就是取得标签的文本内容, 区别是outertext会包含标签本身.
还有选择标签属性, 更改属性, 保存内容等, 可以看下官方的教程.
还有一些功能更强大的html处理工具, 如phpQuery, 有像jQuery一样强大的dom处理能力, 但使用没有那么容易上手,有兴趣的朋友可以去了解一下.
原创文章 转载请注明出处: 登高望远 [ http://www.dengor.com/archives/798.html ]