Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP中的随机文本中提取YouTube URL_Php_Url_Youtube_Preg Match - Fatal编程技术网

从PHP中的随机文本中提取YouTube URL

从PHP中的随机文本中提取YouTube URL,php,url,youtube,preg-match,Php,Url,Youtube,Preg Match,我试图从随机文本中提取YouTube链接。e、 g 这是一些随机文本,url是http://www.youtube.com/watch?v=-d3RYW0YoEk&feature=channel我想从PHP文本中提取这个URL。我好像想不出来。找到了另一种语言的解决方案,但不知道如何转换。 谢谢您的帮助。您可以尝试使用Regex 您可以使用抓取所有此类URL,如: if(preg_match_all('~(http://www\.youtube\.com/watch\?v=[%&=#\w

我试图从随机文本中提取YouTube链接。e、 g

这是一些随机文本,url是
http://www.youtube.com/watch?v=-d3RYW0YoEk&feature=channel
我想从PHP文本中提取这个URL。我好像想不出来。找到了另一种语言的解决方案,但不知道如何转换。
谢谢您的帮助。

您可以尝试使用Regex

您可以使用抓取所有此类URL,如:

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

使用
preg\u match

模式应该类似于:

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

我故意把URL放在文本中。我的整个段落/解释都是随机文本,文本中的某个地方有URL。我没有分离URL,因为我想从一些文本中检索URL,这就是我的示例。只是澄清一下,URL周围没有[X]HTML标记,它们只是集中在一起,混合在普通的旧(非多字节)中文本?也许您应该将
www.
部分设置为可选。这也将匹配
http://www.youtube.example.com/watch?v=…
甚至
http://www.youtube.com 是YouTube的URL;但是http://example.com/watch?v=…不是。
。这非常有效。非常感谢。我一直在拔头发。:)@kitsched我认为ti不会太重要,因为如果你只输入YouTube.com,YouTube会引导你访问www.YouTube.com,因此当有人复制和粘贴时,URL没有www的可能性很小。更复杂的是,还有一种情况:当用户从推特复制URL时,它看起来像youtu.be/xxx:)@kitsched,是的,我知道。哦,好吧。我可能下次再解决这个问题,除非有人已经有了解决办法D