首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP & YouTube

PHP & YouTube
EN

Stack Overflow用户
提问于 2009-11-01 23:23:15
回答 1查看 1.5K关注 0票数 0

我正在编写临时PHP脚本来更新我的MySQL论坛的vBulletin数据库。

它就是这么做的。它会找到任何有youtube代码的条目。然后,它必须用一个指向youtube视频的链接来代替这个代码。

下面是我要学的一个例子:

代码语言:javascript
复制
$string = <<<END
Hi everyone! Check out this video that I just found on YouTube!

[youtube]<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/Md1E_Rg4MGQ&hl=en&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Md1E_Rg4MGQ&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>[/youtube]
END;

我得让它看起来像这样

代码语言:javascript
复制
[URL=http://www.youtube.com/watch/?v=Md1E_Rg4MGQ]http://www.youtube.com/watch/?v=Md1E_Rg4MGQ[/URL]

我和Regex一起工作有点头疼。我在Regex公司没有足够的经验来决定该怎么做。

它必须看起来像这样:

代码语言:javascript
复制
$string = preg_replace("#\[youtube\]?????\[/youtube\]#i", "[URL=http://www.youtube.com/watch?v=$1]http://www.youtube.com/watch?v=$1[/URL]", $string);

救命啊!^_^

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-01 23:27:55

也许是这样的?

代码语言:javascript
复制
$string = preg_replace('#\[youtube\].*?name="movie" value="(.*?)".*?\[/youtube\]#i', "[URL=$1]$1[/URL]", $string);

请注意,这是有限的,因为它需要精确的字符串name="movie" value="????????????????"格式--从技术上讲,还有其他具有相同含义但顺序不同的有效HTML结构,等等。理想的解决方案是使用某种DOM解析器来获取电影属性的值,但如果您知道人们总是使用这种确切的格式(即,如果复制youtube中的复制/粘贴),那么regex就足够了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1658763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档