PHP如何正则表达式提取网页内容

怎样通过下面的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;
}

第1个回答  2013-08-10
如果你要<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;

}本回答被提问者采纳
相似回答