[請益] 爬蟲 preg_match_all 問題

看板PHP作者 (小心一點)時間6年前 (2018/04/24 00:31), 編輯推噓0(0010)
留言10則, 2人參與, 6年前最新討論串1/1
各位版友晚安 有問題想請教各位 假設 $html 是網頁的 html 我要抓在這些class底下 <a> 裡面 href的連結 (會有多筆) <div class="a1_class"> <h3 class="a2_class a3_class"> <a href="" rel="nofollow">http://xxxxxxxxxxxxxxxxxx">文字文字文字</a> <h3> $preg = '/<div class="a1_class">.*?<h3 class="a2_class a3_class">.*? <a .*? href="(.*?)">/s</a>.*?</h3>'; preg_match_all($preg,$html,$match); 可是我 輸出 $match 卻沒有內容 想請教一下 我是否哪邊有寫錯 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 119.77.199.20 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1524501108.A.43A.html

04/24 10:36, 6年前 , 1F
用 / 開頭 最後沒有 / 中間卻有好幾個沒escape
04/24 10:36, 1F

04/24 10:38, 6年前 , 2F
這樣沒有錯誤訊息 不可思議
04/24 10:38, 2F

04/24 10:40, 6年前 , 3F
04/24 10:40, 3F

04/24 10:40, 6年前 , 4F
要用regex先自己在上面玩一玩
04/24 10:40, 4F

04/24 10:41, 6年前 , 5F
還有抓HTML內容 simplehtmldom卡實在
04/24 10:41, 5F

04/24 11:22, 6年前 , 6F
我剛用這網站 先用 <div class=\"a1_class\"> 有match到
04/24 11:22, 6F

04/24 11:23, 6年前 , 7F
但是如果之後繼續加上 .*?<h3 就沒有任何match了
04/24 11:23, 7F

04/24 11:24, 6年前 , 8F
是換行問題嗎 囧rz
04/24 11:24, 8F

04/24 12:09, 6年前 , 9F
換行很煩 就這個而言改用 \s* 就可以繼續match
04/24 12:09, 9F

04/24 12:10, 6年前 , 10F
不過通常看到多行就會想別的方法了
04/24 12:10, 10F
文章代碼(AID): #1QtWfqGw (PHP)
文章代碼(AID): #1QtWfqGw (PHP)