【发布时间】:2011-06-27 20:58:34
【问题描述】:
有人得到 vimeo 视频链接的正则表达式来从 pragraph 中提取它们以用于 php 吗?似乎无法为最新的 vimeo url 方案找到合适的方案
【问题讨论】:
-
最新的 Vimeo URL 方案是什么?
-
链接类型:vimeo.com/11339453
有人得到 vimeo 视频链接的正则表达式来从 pragraph 中提取它们以用于 php 吗?似乎无法为最新的 vimeo url 方案找到合适的方案
【问题讨论】:
Vimeo 有 4 个不同的公共视频链接
vimeo.com/[Video ID]
vimeo.com/channels/[Channel]/[Video ID]
vimeo.com/groups/[Group]/[Video ID]
player.vimeo.com/video/[Video ID]
/(http|https)?:\/\/(www\.|player\.)?vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|video\/|)(\d+)(?:|\/\?)/
【讨论】:
据我所知,该方案只是http://vimeo.com/A_NUMBER,所以试试http://(www\.)?vimeo\.com/(\d+)。如果您不需要以http:// 为前缀的链接,则可以省略整个http://(www\.) 位。
【讨论】:
(www\.)? 可能会给出空捕获。
preg_replace 需要在正则表达式周围放置分隔符 - 试试 preg_replace('#http://(www\.)?vimeo\.com/(\d+)#g', '[vimeo=$1]', $content);。
注意:url scheme是
http://vimeo.com/[SEVERAL_FOLDERS(opt.)]/[VIDEO_NUMBER]
例如:
http://vimeo.com/channels/staffpicks/48237094
http://vimeo.com/48237094
如您所见,这取决于用户从哪个页面复制链接。
【讨论】:
http://vimeo.com/yt-9023jr28j04j 或 mu- 用于 muzu。所以 ID 应该接受字母、数字和“-”。
http://(www\.)?vimeo\.com/(\w*/)*(([a-z]{0,2}-)?\d+)
这个涵盖了所有可能的 Vimeo 视频 URL 方案:
(?:http|https)?:?\/?\/?(?:www\.)?(?:player\.)?vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/(?:[^\/]*)\/videos\/|video\/|)(\d+)(?:|\/\?)
vimeo.com/123456789
vimeo.com/channels/mychannel/123456789
vimeo.com/groups/shortfilms/videos/123456789
player.vimeo.com/video/123456789
http://vimeo.com/123456789
https://vimeo.com/channels/mychannel/123456789
https://vimeo.com/groups/shortfilms/videos/123456789
https://www.player.vimeo.com/video/123456789
在这里测试: https://regexr.com/68gk3
【讨论】:
vimeo\.com/(\d)+ 有什么问题吗?你需要http://www.吗?
【讨论】:
最好问问 viemo 人,因为他们知道得更好,如果他们改变任何东西,他们会在他们的 api 中反映出来
现场示例:
http://vimeo.com/api/oembed.json?url=http%3A//vimeo.com/76979871
【讨论】: