在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
目录快速入门 //从一个URL或者文件创建一个DOM对象
$html = file_get_html('http://www.google.cn/'); // 寻找所有的img标签 foreach($html->find('img') as $element) echo $element->src . '<br>'; // 寻找所有的链接标签 foreach($html->find('a') as $element) echo $element->href . '<br>';
//从字符串创建一个DOM对象
$html = str_get_html('<div >World</div> // 从HTML中提取内容(不包含标签) echo file_get_html('http://www.google.com/')->plaintext;
//从URL创建一个DOM对象
$html = file_get_html('http://slashdot.org/'); // 寻找所有的article块 foreach($html->find('div.article') as $article) { $item['title'] = $article->find('div.title', 0)->plaintext; $item['intro'] = $article->find('div.intro', 0)->plaintext; $item['details'] = $article->find('div.details', 0)->plaintext; $articles[] = $item; } print_r($articles); 如何创建HTML DOM 对象?
//从字符串创建一个DOM对象
$html = str_get_html('<html><body>Hello!</body></html>'); //从一个URL创建一个DOM对象 $html = file_get_html('http://www.google.com/'); //从一个HTML文件创建一个DOM对象 $html = file_get_html('test.htm');
//创建一个DOM对象
$html = new simple_html_dom(); //从字符串中载入HTML $html->load('<html><body>Hello!</body></html>'); //从URL中载入HTML $html->load_file('http://www.google.cn/'); //从文件中载入HTML $html->load_file('test.htm'); //输出 echo $html; 如何查找HTML元素?
// 查找所有的锚, 返回一个元素对象数组
$ret = $html->find('a'); //查找第N个 锚, 返回元素对象或者当找不到时返回null (从零开始) $ret = $html->find('a', 0); //查找最后一个 锚, 返回元素对象或者当找不到时返回null (从零开始) $ret = $html->find('a', -1); //通过id属性 查找所有的<div> $ret = $html->find('div[id]'); // 查找所有属性id=foo的<div>标签 $ret = $html->find('div[id=foo]');
//查找所有id=foo的元素
$ret = $html->find('#foo'); //查找所有class=foo的元素 $ret = $html->find('.foo'); //查找所有包含id属性的的元素 $ret = $html->find('*[id]'); //查找所有的锚与图片 $ret = $html->find('a, img'); //查找所有包含title属性的锚与图片 $ret = $html->find('a[title], img[title]'); 在属性过滤器中支持如下运算符:
过滤器 描述
//在<ul>中查找所有的<li>后代
$es = $html->find('ul li'); //查找所有的<div>嵌套标签 $es = $html->find('div div div'); //在<table>中查找所有的class=hello的<td>后代 $es = $html->find('table.hello td'); //在table标签中查找所有属性align=center的td $es = $html->find(''table td[align=center]');
//查找所有的text区块
$es = $html->find('text'); //查找所有的comment (<!--...-->)区块 $es = $html->find('comment');
//在<ul>中查找所有的<li>
foreach($html->find('ul') as $ul) { foreach($ul->find('li') as $li) { //在这里执行操作... } } //在第一个<ul>中查找第一个<li> $e = $html->find('ul', 0)->find('li', 0); 如何访问HTML元素的属性?
// 获取属性(如果是一个空值属性(例如. checked, selected...这些属性),则返回true或者false)
$value = $e->href; // 设置属性(如果是一个空值属性(例如. checked, selected...这些属性),则让值等于true或者false) $e->href = 'my link'; // 删除属性,让其值为空! $e->href = null; // 确定某个属性是否存在? if(isset($e->href)) echo 'href exist!';
// 列子
$html = str_get_html("<div>foo <b>bar</b></div>"); $e = $html->find("div", 0); echo $e->tag; // 返回: " div" echo $e->outertext; // 返回: " <div>foo <b>bar</b></div>" echo $e->innertext; // 返回: " foo <b>bar</b>" echo $e->plaintext; // 返回: " foo bar" 属性名 用法
// Extract contents from HTML
echo $html->plaintext; // Wrap a element $e->outertext = '<div class="wrap">' . $e->outertext . '<div>'; // Remove a element, set it's outertext as an empty string $e->outertext = ''; // Append a element $e->outertext = $e->outertext . '<div>foo<div>'; // Insert a element $e->outertext = '<div>foo<div>' . $e->outertext; 如何遍历DOM树?
//如果你不是很熟悉HTML DOM,那么请点击这个链接查看更多资料...
//列子 echo $html->find("#div1", 0)->children(1)->children(1)->children(2)->id; //或者 echo $html->getElementById("div1")->childNodes(1)->childNodes(1)->childNodes(2)->getAttribute('id'); 你也可以使用骆驼命名法调用.
方法 描述
如何储存DOM对象中的内容?
// 将DOM树中的内容储存在字符串中
$str = $html->save(); //将DOM树中的内容储存在文件中 $html->save('result.htm');
// 将DOM树中的内容储存在字符串中
$str = $html; //打印输出! echo $html; 如何自定义解析器方法?
//创建一个带有"$element"参数的函数
function my_callback($element) { //隐藏所有的<b>标签 if ($element->tag=='b') $element->outertext = ''; } //用它的函数名注册callback函数 $html->set_callback('my_callback'); //当输出时就会引用Callback函数 echo $html; |
2022-07-18
2022-08-17
2022-11-06
2022-08-18
2022-08-16
请发表评论