我試圖從隨機文本中提取YouTube鏈接。例如從PHP中的隨機文本中提取YouTube網址
這是一些隨機文本,網址是http://www.youtube.com/watch?v=-d3RYW0YoEk&feature=channel
,我想從PHP中將此URL拉出本文。似乎無法弄清楚。找到另一種語言的解決方案,但不知道如何轉換它。 感謝您的幫助。
我試圖從隨機文本中提取YouTube鏈接。例如從PHP中的隨機文本中提取YouTube網址
這是一些隨機文本,網址是http://www.youtube.com/watch?v=-d3RYW0YoEk&feature=channel
,我想從PHP中將此URL拉出本文。似乎無法弄清楚。找到另一種語言的解決方案,但不知道如何轉換它。 感謝您的幫助。
您可以使用preg_match_all
抓住所有這些網址爲:
if(preg_match_all('~(http://www\.youtube\.com/watch\?v=[%&=#\w-]*)~',$input,$m)){
// matches found in $m
}
也許你應該讓'www.'部分是可選的。 – janosrusiczki 2010-09-06 06:12:16
這也會匹配'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
這工作得很好。非常感謝。我一直在拉我的頭髮。 :) @kitsched我不認爲ti會太重要,因爲如果您只是輸入YouTube.com,YouTube會引導您訪問www.youtube.com,因此當有人複製並粘貼時,URL的機會不會有www 。 – 2010-09-06 06:33:27
,你可以嘗試使用正則表達式
使用preg_match
。
的模式應該是這樣的:
/(http\:\/\/www\.youtube\.com\/watch\?v=\w{11})/
我把網址中的目的的字符串。我的整個段落/解釋將是文本中某處URL的隨機文本。我沒有分開URL,因爲我想從一些文本中檢索URL,這就是我的例子。 – 2010-09-06 06:00:51
只是爲了澄清一下,網址周圍沒有[X] HTML標籤,它們只是混雜在一起,並且混合在普通的舊(非多字節)文本中? – 2010-09-06 06:16:05