台灣最大程式設計社群網站
線上人數
1005
 
會員總數:246265
討論主題:189809
歡迎您免費加入會員
討論區列表 >> PHP >> 正則表達式相關問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
正則表達式相關問題
價值 : 40 QP  點閱數:937 回應數:2
樓主

azureshin
初學者
20 143
1575 72
發送站內信



想請問一下, 我想把頁面中的<a>全都抓出來
preg_match_all('#<\s*a[^>]*>[^<]+</a>#is', $r,$match)
這樣我能順利的抓出頁面中所有的<a>內容

但如果我想要抓title是[資料連結]的<a>標籤
preg_match_all('#<\s*a[^>]*title="資料連結"[^>]*>[^<]+</a>#is', $r,$match)
這樣卻抓不到資料

但頁面中確實是有資料的....如下, 想請問問題出在哪呢


<a href="http://url.php?s=111" title="資料連結">111</a>
<a href="http://url.php?s=222" title="資料連結">222</a>
<a href="http://url.php?s=333" title="資料連結">333</a>



本篇文章發表於2011-11-17 10:23
1樓
不錯的參考

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
不要用中文去當正則的判斷。很容易誤判。
本篇文章回覆於2011-11-17 10:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

ahsac
檢舉此回應
你的php編碼是 big5? utf8?
你抓的資料編碼是 big5? utf8?

假如你的php是用utf8, 試試這個?
preg_match_all('#<\s*a[^>]*title="資料連結"[^>]*>[^<]+</a>#is', iconv("big5", "utf-8", $r),$match);

我很少處理中文的經驗, 也只能想到這個原因了
本篇文章回覆於2011-11-17 16:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.