2013-10-28 69 views
1

進出口尋找一個正則表達式,將抓住所有具有擴展名的URL的所有鏈接的詮釋,他下面的數組:正則表達式來獲得帶有特定擴展名

Array 
(
    [0] => mp4 
    [1] => m4v 
    [2] => webm 
    [3] => ogv 
    [4] => wmv 
    [5] => flv 
) 

該陣列是由一個內部的WordPress函數返回稱爲wp_get_video_extensions(),並且是WordPress可以識別的視頻URls。

的內容塊看起來像這樣使用URL裏面:

「是的,但我生長在一個合理的速度,」睡鼠說:「不 那可笑的時尚」然後他非常不自然地起身,穿過 到法庭的另一邊。

這一切的時候,王后的眼睛始終在帽匠盯着,並且, 就像睡鼠越過法庭,她向法院的 人員之一說,「給我的歌手列表最後的 音樂會!'在那個可憐的帽匠發抖的時候,他搖了搖他的鞋子。

[視頻MP4 = 「http://www.example.com/files/video/video1.mp4」] [/視頻]

'拿出證據來,' 國王憤怒地重複,「還是我不管你緊張與否,你會讓你執行 。'

http://www.example.com/files/video/video2.flv

「我是個窮人,陛下,」帽匠開始,用顫抖的聲音 「 - 和我還沒有開始我的茶不是一個星期以上或某某什麼 與麪包和奶油變得這麼薄,和 沏茶」

我想獲得它的閃耀在那裏發現無論是視頻網址,以及陣列中返回整個URL 。

這裏是我有:

preg_match_all('/^https?:\/\/(?:[a-z\-]+\.)+[a-z]{2,6}(?:/[^/#?]+)+\.(?:' . implode('|', wp_get_video_extensions()) . ')$/', $post->post_content, $matches); 

,我得到這個:

警告:preg_match_all():未知的修飾詞 '['

理想的情況下,我想獲得這:

Array 
(
    [0] => Array 
      (
       [0] => http://www.example.com/files/video/video1.mp4 
       [1] => http://www.example.com/files/video/video2.flv 
      ) 
    [1] => Array 
      (
       [0] => http://www.example.com/ 
       [1] => http://www.example.com/ 
      ) 
    [2] => Array 
      (
       [0] => files/video/ 
       [1] => files/video/ 
      ) 
    [3] => Array 
      (
       [0] => video1.mp4 
       [1] => video2.flv 
      ) 
) 

但是,這也將是完美的,因爲我可以使用parse_url()打破稍後休息:

Array 
(
    [0] => http://www.example.com/files/video/video1.mp4 
    [1] => http://www.example.com/files/video/video2.flv 
) 
+0

「它不起作用:(」真的沒有足夠的信息 - 我們需要知道*如何*它不起作用,通常帶有樣本輸入/輸出,以及[Short,Self Contained,Compileable Example]( http://sscce.org)。 – FrankieTheKneeMan

+0

請問,要添加信息而不是使用評論的問題。 – brasofilo

+0

@FrankieTheKneeMan對於之前的簡短回覆感到抱歉,我編輯了這篇文章以包含更多關於我正在尋找什麼的信息 – dpegasusm

回答

1

你是第一個問題,是你沒有逃脫所有的「/」。第二個問題是,只有在該行的開始和結束時才嘗試匹配。這應該照顧它。

preg_match_all('~https?://(?:[a-z\-]+\.)+[a-z]{2,6}(?:/[^/#?]+)+\.(?:' . implode('|', wp_get_video_extensions()) . ')~', $post->post_content, $matches); 

使用「〜」使得它不需要轉義「/」。