[請益] preg_match_all解析yahoo搜尋結果

看板PHP作者 (電電)時間13年前 (2012/05/27 22:27), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
小弟打算利用寫一支可以截取yahoo搜尋結果的相關詞的程式 本例以"淡定紅茶"為搜尋條件 以下為程式碼: $ch = curl_init(); $options = array(CURLOPT_URL => 'http://tw.search.yahoo.com/search;_ylt=A8tUwYBQ.MFPiWUAefFr1gt.?p=%E6%B7%A1%E5%AE%9A%E7%B4%85%E8%8C%B6&fr2=sb-top&fr=yfp&type_param=', CURLOPT_HEADER => false, CURLOPT_RETURNTRANSFER => true, CURLOPT_USERAGENT => "Google Bot", CURLOPT_FOLLOWLOCATION => true ); curl_setopt_array($ch, $options); $output = curl_exec($ch); curl_close($ch); $output=iconv("UTF-8","big5",$output); preg_match_all('/<h2>相關詞:<\/h2>(.*?)<\/a><\/li><\/ul><\/div><h2 class="off-left">/si',$output,$matches); preg_match_all('/<a[^>]*+>([^<]*+(?:(?!<\/?+a)<[^<]*+)*+)<\/a>/i',$matches[0][0],$matches2,PREG_SET_ORDER); print $matches2[0][0].", ".$matches2[0][1]."\n"; print $matches2[1][0].", ".$matches2[1][1]."\n"; print_r($matches); 小弟遇到的問題是: $output是有值的,代表抓取整個頁面內容有成功 但利用preg_match_all()函式去解析所要的內容(相關詞)後,$matches陣列裡卻是空的 不知道是正規表示是有寫錯,還是其他地方有出錯呢? 麻煩各位大大指點迷津,感恩> < -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.185.93

05/28 00:44, , 1F
http://www.regextester.com/ 測試一下。
05/28 00:44, 1F
文章代碼(AID): #1FmZdZnw (PHP)
文章代碼(AID): #1FmZdZnw (PHP)