PHP如何正则表达式提取网页内容
怎样通过下面的php代码,和正确的正则表达式提取网页里面的<divclass="nav"monkey="nav">和<divclass="head-ad">之间的内容(要...
怎样通过下面的php代码,和正确的正则表达式提取网页里面的
<div class="nav" monkey="nav">和<div class="head-ad">之间的内容(要所有的源码),然后用$kkk输出
$url="http://music.baidu.com/?from=new_mp3";
$string=file_get_contents($url);
preg_match_all("正则表达式",$string,$matches);
$new_arr=array_unique($matches[0]);
foreach($new_arr as $kkk){
echo $kkk;
} 展开
<div class="nav" monkey="nav">和<div class="head-ad">之间的内容(要所有的源码),然后用$kkk输出
$url="http://music.baidu.com/?from=new_mp3";
$string=file_get_contents($url);
preg_match_all("正则表达式",$string,$matches);
$new_arr=array_unique($matches[0]);
foreach($new_arr as $kkk){
echo $kkk;
} 展开
1个回答
展开全部
如果你要<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码,用 preg_match 就可以,不用preg_match_all ,如果你要里面的所有的 <li></li>标签中的内容,可以用preg_match_all
//提取所有代码
$pattern = '/<div class="nav" monkey="nav">(.+?)<div class="head-ad">/is';
preg_match($pattern, $string, $match);
//$match[0] 即为<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码
echo $match[0];
//然后再提取<li></li>之间的内容
$pattern = '/<li.*?>(.+?)<\/li>/is';
preg_match_all($pattern, $match[0], $results);
$new_arr=array_unique($results[0]);
foreach($new_arr as $kkk){
echo $kkk;
}
//提取所有代码
$pattern = '/<div class="nav" monkey="nav">(.+?)<div class="head-ad">/is';
preg_match($pattern, $string, $match);
//$match[0] 即为<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码
echo $match[0];
//然后再提取<li></li>之间的内容
$pattern = '/<li.*?>(.+?)<\/li>/is';
preg_match_all($pattern, $match[0], $results);
$new_arr=array_unique($results[0]);
foreach($new_arr as $kkk){
echo $kkk;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询