Re: [請益] 思路請益 (關於正規表示,curl)
※ 引述《kusoayan (Maybe)》之銘言:
: 大家好
: 目前正在寫一隻小程式
: 功能是抓取無名網誌上播放器的音樂載點
: 而通常無名上是用iframe嵌入播放器
: http://tinyurl.com/ygsvmh2
: 其中 <iframe src=" 後的那段網址裡頭是真正要處理的code
: 目前程式的流程是:
: 用curl先抓取所給的url的html
: 然後分析此html , 用preg_match 函式抓出 <iframe src=" 後的那段網址
: 而我用的正規表示式是 /iframe src=\"(.+?)\" frameborde/
: 再把這個網址用curl抓出原始碼
: 此時的code大約類似
: http://tinyurl.com/yk99ttk
: 然後再用 /\?file=(.+?)&/ 把 file= 後面的這段抓下來
: 這個就是我所要的網址
: 以上用於我自己的無名都OK
: 但是我用朋友得來測試時卻發現幾點致命傷
: 1.我的無名只有一個iframe
: 可是不見得別人的也只有一個
: 也許有很多個
: 那這個時候該怎麼去抓播放器的語法呢 ? 該怎麼設定正規表示式的條件 ?
: 或是有iframe的地方都抓出來
: 反正到第二步驟的時候"應該"只有播放器的那個iframe會有結果
: (算偷懶嗎XD)
用preg_match_all
http://tw2.php.net/manual/en/function.preg-match-all.php
preg_match_all("/\?file=(.*)&/",$content,$url);
for($i=0; $i<count($url[1]); $i++){
echo $url[1][$i]; //去處理抓到的網址
}
至於為什麼是抓$url[1]裡面的東西
不是$url[0]的東西
可以參考文件try try看
: 2.抓取到播放器的code後
: 因為file,autostart等等是參數可以隨意變換位置
: 我的是file再最前面,所以連接下一個參數會用&
: 以此作為正規表示式的規則
: 可是像我朋友的就很機車 file再最後面
: 所以載點之後並沒有 &
: 這個時候規則又該怎麼改 ?
如果抓 /\?file=(.*)&/
count(count($url[1]))為0
則再抓 /&file=(.*)/ 依此類推
: 以上
: 因為我對正規表示式並沒有真正學習過
: 都是看著別人的code + google依樣畫葫蘆
: 所以現在遇到這個問題思路有點轉不出去
: 希望有高手能幫忙指點一下
: 謝謝 :D
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.21.158.139
推
02/24 22:25, , 1F
02/24 22:25, 1F
推
02/24 22:36, , 2F
02/24 22:36, 2F
→
02/24 22:36, , 3F
02/24 22:36, 3F
→
02/24 22:37, , 4F
02/24 22:37, 4F
→
02/25 01:21, , 5F
02/25 01:21, 5F
推
02/25 19:46, , 6F
02/25 19:46, 6F
推
02/25 21:35, , 7F
02/25 21:35, 7F
→
02/25 23:17, , 8F
02/25 23:17, 8F
→
02/25 23:18, , 9F
02/25 23:18, 9F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
-5
14