PHP preg_match也用于从 img.youtube.com 中获取YouTube ID


PHP preg_match for grabbing YouTube ID from img.youtube.com too

我已经实现了一个抓取Youtube ID的函数,我使用正则表达式:

preg_match('%(?:youtube(?:-nocookie)?'.com/(?:(?:v|e(?:mbed)?)/|.*[?&]v=|[^/]+/.+/)|youtu'.‌​be/)([^"&?/ ]{11})%i', $sourceCode, $youtube)) 

我的问题是这个 reular 表达式不会从 URL 中获取 id,例如:http://img.youtube.com/vi/Di9mW35zprs/0.jpg

那么,我怎样才能将其更改为现在的工作方式,但也可以通过从 URL"http://img.youtube.com/vi/Di9mW35zprs/0.jpg"给我"Di9mQ35zprs"

  • 关于使用PREG_MATCH抓取YOUTUBE ID还有许多其他问题,但没有一个回答如何从URL http://img.youtube.com/vi/Di9mW35zprs/0.jpg 抓取的问题。

想要实现的只是替换我当前的preg_match,并使它能够从 http://img.youtube.com/vi/Di9mW35zprs/0.jpg 网址中获取youtube ID。

谢谢!

首先使用 parse_url() 和 explode()。现在你的正则表达式看起来像是直接从地狱来的。

尝试使用这个:

 $videoId = preg_replace("/.*v[=i]'/?('w+).*/", ''1', "http://img.youtube.com/vi/Di9mQ35zprs/0.jpg");

该函数将返回您想要的 id。它应该适用于您描述的两种类型的 URL。