PHP抓取頁面中a標籤的href屬性值以及a中間內容
阿新 • • 發佈:2018-12-13
$str = file_get_contents($zh_cn_url); $reg1='/<a href=\"(.*?)\".*?>(.*?)<\/a>/i';//匹配所有A標籤 preg_match_all($reg1,$str,$aarray); //這個$aarray 你可以列印一下看下你具體的業務需要哪個陣列 //這個$aarray 是整個抓取的核心 $reg2="/href=\"([^\"]+)/";//獲取href中的值 $arr = array(); for($i=1;$i<=3;$i++){ //這裡講一下我抓取的是前三個所以只需要 1=< i <=3就可以了 //如果想取出所有需要將for改為 //for($i=0;$i<count($aarray[0][$i]);$i++) preg_match_all($reg2,$aarray[0][$i],$hrefarray); $reg3="/>(.*)<\/a>/";//a標籤中的內容 preg_match_all($reg3,$aarray[0][$i],$acontent); $arr[$i]['title'] = $acontent[1][0]; $arr[$i]['url'] = $server_name.$hrefarray[1][0]; } $data = array(); foreach ($arr as $key=>$val){ $data[] = $val; }
//為什麼還要用個foreach 在放進一個新的數組裡 ,這裡講一下,為了迎合我的業務邏輯需要將該陣列的內容變為
//array(
// array('title'=>'a中內容1','url'=>'href屬性值1'),
// array('title'=>'a中內容2','url'=>'href屬性值2'),
// array('title'=>'a中內容3','url'=>'href屬性值3'),
// );
return $json = json_encode($data); //返回json格式當然你也可以返回陣列,直接 return $data即可