【发布时间】:2014-03-05 14:54:54
【问题描述】:
我正在寻找一个 PHP 正则表达式,它将扫描文本块并匹配任何 Vimeo URL——无论是纯文本还是 HTML 链接,所以我可以用嵌入的视频替换它们。
我有每个工作的版本,但我没有足够的技能来增强它们以便它可以同时做这两个,而且我发现的很多半工作的似乎并没有解释此处列出的皱纹:https://stackoverflow.com/a/12263701/1402052
似乎与 HTML 链接有效匹配的那个:
$text = preg_replace('#(.*?)http://(www\.)?vimeo\.com/([^ ?\n/]+)((\?|/).*?(\n|\s))?.*#x', '<div class="video vimeo"><iframe src="//player.vimeo.com/video/$3" width="650" height="366" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>', $text);
似乎有效匹配纯文本 URL 的一种:
$text = preg_replace('#http://(www\.)?vimeo\.com/(\d+)#', '<div class="video vimeo"><iframe src="//player.vimeo.com/video/$2" width="650" height="366" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>', $text);
如果我运行 both(前者第一个),这些似乎也可以工作,但我猜有更好的方法。
另外,我说“似乎”是因为我还没有充分强调测试。任何帮助表示赞赏。 :)
【问题讨论】:
-
所以展示你所拥有的。我们很乐意提供帮助,但坦率地说,我们厌倦了人们声称他们几乎可以工作,并且无论如何都需要我们为他们做所有事情。
-
已编辑。抱歉,我只是假设两者都有足够的缺陷,以至于他们几乎无法提供帮助。
-
它们是否有缺陷并不重要......如果它们没有你就不会在这里,但很高兴看到你真的尝试过这样做,而不是试图让 SO 为您完成工作。那里有太多的免费加载者......