如何获取网页标签内的内容啊 ??

lonelyriver 2010-07-12 11:55:02
比如说 <div class="info">…………………………</div>这对标签内的内容

不过这个div里面有多个div嵌套

要用到正则吗??

先用file_get_contents()获取到网页内容,然后用正则匹配截取吗??


有没有可以直接获取的方法呢??
...全文
404 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Coder_Granger 2010-07-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lonelyriver 的回复:]

引用 11 楼 standford 的回复:

里面有好多DIV标签的最好用DOM,以下是一个例子:<?xml version="1.0" encoding="gb2312"?>
<books>
<book>
<author>aa</author>
<title>bb</title>
<publisher>cc</publisher>
</book>
</books>


……
[/Quote]

html一样是dom结构
lonelyriver 2010-07-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 standford 的回复:]

里面有好多DIV标签的最好用DOM,以下是一个例子:<?xml version="1.0" encoding="gb2312"?>
<books>
<book>
<author>aa</author>
<title>bb</title>
<publisher>cc</publisher>
</book>
</books>


p.php内容
<?php
$doc = ne……
[/Quote]
用dom?我说的是html啊 不是xml
standford 2010-07-13
  • 打赏
  • 举报
回复
里面有好多DIV标签的最好用DOM,以下是一个例子:<?xml version="1.0" encoding="gb2312"?>
<books>
<book>
<author>aa</author>
<title>bb</title>
<publisher>cc</publisher>
</book>
</books>


p.php内容
<?php
$doc = new DOMDocument();
$doc->load( 'x.xml' );

$books = $doc->getElementsByTagName( "book" );
foreach( $books as $book )
{
$authors = $book->getElementsByTagName( "author" );
$author = $authors->item(0)->nodeValue;
$publishers = $book->getElementsByTagName( "publisher" );
$publisher = $publishers->item(0)->nodeValue;
$titles = $book->getElementsByTagName( "title" );
$title = $titles->item(0)->nodeValue;
echo "$title - $author - $publisher\n";
}
?>
jianglin28290 2010-07-12
  • 打赏
  • 举报
回复
使用正则匹配字符串
chinajoy2012 2010-07-12
  • 打赏
  • 举报
回复
正则吧
qqshenyunzcz 2010-07-12
  • 打赏
  • 举报
回复
jQuery 不是有个html()方法吗?
dld11111 2010-07-12
  • 打赏
  • 举报
回复
php只能那样了吧
Coder_Granger 2010-07-12
  • 打赏
  • 举报
回复
尽量用处理dom结构的方式获取内容,
正则是万不得已的时候才用的。
CunningBoy 2010-07-12
  • 打赏
  • 举报
回复
正则匹配

如果网页内容是你自己的话,可以在网页上用Ajax提交<div>中的内容给PHP处理。
Dleno 2010-07-12
  • 打赏
  • 举报
回复
字符串里有明显的开始和结尾来区分的,就用正则。
如果比较模糊的那种就用dom xpath来。
如:
****************<div class='1'><div><div><div><div><div><div><div>
<div>gdgfdgdfgfd</div>
<div>gdgfdgdfgfd</div>
<div>gdgfdgdfgfd</div>
<div>gdgfdgdfgfd</div>
</div></div></div></div></div></div></div></div>******************

$dom = new DOMDocument();
$dom->loadHTML( $str );

$xpath = new DOMXPath( $dom );
$el = $xpath->query("//html/body/div[@class='1']");
dingyiding 2010-07-12
  • 打赏
  • 举报
回复
还真不会啊
foolbirdflyfirst 2010-07-12
  • 打赏
  • 举报
回复
php正则没有引入平衡组,其递归能力偏弱,能用dom就用dom吧.
床上等您 2010-07-12
  • 打赏
  • 举报
回复
正则就可以了,不一定需要 dom 来处理。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧