2010-09-06 42 views
2

我試圖從隨機文本中提取YouTube鏈接。例如從PHP中的隨機文本中提取YouTube網址

這是一些隨機文本,網址是http://www.youtube.com/watch?v=-d3RYW0YoEk&feature=channel,我想從PHP中將此URL拉出本文。似乎無法弄清楚。找到另一種語言的解決方案,但不知道如何轉換它。 感謝您的幫助。

+0

我把網址中的目的的字符串。我的整個段落/解釋將是文本中某處URL的隨機文本。我沒有分開URL,因爲我想從一些文本中檢索URL,這就是我的例子。 – 2010-09-06 06:00:51

+0

只是爲了澄清一下,網址周圍沒有[X] HTML標籤,它們只是混雜在一起,並且混合在普通的舊(非多字節)文本中? – 2010-09-06 06:16:05

回答

3

您可以使用preg_match_all抓住所有這些網址爲:

if(preg_match_all('~(http://www\.youtube\.com/watch\?v=[%&=#\w-]*)~',$input,$m)){ 
// matches found in $m 
} 
+0

也許你應該讓'www.'部分是可選的。 – janosrusiczki 2010-09-06 06:12:16

+0

這也會匹配'http://www.youtube.example.com/watch?v = ...'或甚至http://www.youtube.com是YouTube的網址;但http://example.com/watch?v=... isn't.'。 – Gumbo 2010-09-06 06:13:41

+0

這工作得很好。非常感謝。我一直在拉我的頭髮。 :) @kitsched我不認爲ti會太重要,因爲如果您只是輸入YouTube.com,YouTube會引導您訪問www.youtube.com,因此當有人複製並粘貼時,URL的機會不會有www 。 – 2010-09-06 06:33:27

0

使用preg_match

的模式應該是這樣的:

/(http\:\/\/www\.youtube\.com\/watch\?v=\w{11})/