[請益] 擷取網頁內容與preg_match_all

看板PHP作者 (史雷斯)時間13年前 (2010/09/15 00:38), 編輯推噓1(106)
留言7則, 2人參與, 最新討論串1/2 (看更多)
我要寫的功能大致上是,先抓取GOOGLE搜尋結果的頁面, 然後將搜尋結果中第一頁中的結果的連結抓出來。 -- 原始碼我原本是這樣寫: $url ="http://www.google.com.tw/search?hl=zh-TW&q=地震&meta=&aq=f&oq="; $fp = file_get_contents($url); preg_match_all("/<h3 class=\"r\"><a href=\"(.+?)\" class=l>/", $fp, $data,PREG_SET_ORDER); echo "網址:$data[0][1]"."\n"; echo "網址:$data[1][1]"."\n"; . . . -- 但是以上的輸出結果只會顯示: 網址:Array[1] 網址:Array[1] -- 但如果我將原始碼改為: $url ="http://www.google.com.tw/search?hl=zh-TW&q=地震&meta=&aq=f&oq="; $fp = file_get_contents($url); preg_match("/<h3 class=\"r\"><a href=\"(.+?)\" class=l>/", $fp, $data); echo "$data[1]"."\n"; -- 則可以正確輸出一項結果: 網址:http://www.cwb.gov.tw/V6/seismic/quake_index.htm -- 上下兩個程式碼差別在preg_match_all改為preg_match。 應該算是可以測試出我preg_match中第一個判別用參數是正確的, 但是我用preg_match_all下去跑卻只會顯示 網址:Array[1] 實在是令我不解 囧> 這邊想請問是不是我preg_match_all的用法不對或是甚麼其他問題, 導致第一段程式法無法運正常運作? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.120.142

09/15 00:48, , 1F
回傳是 array~
09/15 00:48, 1F

09/15 00:49, , 2F
print_r($data); 你就會知道該怎帶了
09/15 00:49, 2F

09/15 00:59, , 3F
我直接將echo改為print_r就變正解了 謝謝 不過兩者差別在哪?
09/15 00:59, 3F

09/15 03:10, , 6F
print_r 可以以遞迴的方式印出 變數裡額外的物件或陣列
09/15 03:10, 6F

09/15 03:10, , 7F
echo 只能印出 變數代表什麼
09/15 03:10, 7F
文章代碼(AID): #1CZwJtY_ (PHP)
文章代碼(AID): #1CZwJtY_ (PHP)