我正在构建我自己的论坛,您可以在其中使用不同类型的 BBcode,其中之一是 [youtube][/youtube] 来嵌入 youtube 视频,
这个想法是让它变得简单,用户可以像这样输入完整的 url 或只是视频的代码
[youtube]http://www.youtube.com/watch?v=AJ3_kndmeCg[/youtube]
[youtube]http://www.youtube.com/watch?v=AJ3_kndmeCg&feature=related[/youtube] [youtube]AJ3_kndmeCg[/youtube]
这是我的代码,它从一个完整的 url 中获取代码,
<?php
$getpost=$_POST['post'];
$getpost=preg_replace("'\[youtube\].*?=(.*?)&.*?\[/youtube\]'is",'yt link is \\1',$getpost);
$getpost=preg_replace("'\[youtube\].*?=(.*?)\[/youtube\]'is",'yt link is \\1',$getpost);
$getpost=preg_replace("'\[youtube\](.*?)\[/youtube\]'is",'yt link is \\1',$getpost);
?>
结果是:
yt link is AJ3_kndmeCg
yt link is AJ3_kndmeCg
yt link is AJ3_kndmeCg
如果我只想嵌入 3 个 youtube 视频,它会完美运行,
但是如果我想像这样嵌入 6 个 youtube 视频:
[youtube]http://www.youtube.com/watch?v=AJ3_kndmeCg[/youtube] [youtube]http://www.youtube.com/watch?v=AJ3_kndmeCg&feature=related[/youtube] [youtube]AJ3_kndmeCg[/youtube]
[youtube]http://www.youtube.com/watch?v=AJ3_kndmeCg[/youtube] [youtube]http://www.youtube.com/watch?v=AJ3_kndmeCg&feature=related[/youtube] [youtube]AJ3_kndmeCg[/youtube]
结果是:
yt link is AJ3_kndmeCg
yt link is AJ3_kndmeCg[/youtube]
yt link is AJ3_kndmeCg
yt link is http://www.youtube.com/watch?v=AJ3_kndmeCg
[youtube]AJ3_kndmeCg
你看到了吗^^标签仍然保留在两行中,其中一行显示了完整的 URL,
最佳答案
我宁愿使用现有的 BBCode 解析库,如 http://www.christian-seiler.de/projekte/php/bbcode/index_en.html它还允许您定义自己的 bb 标签,并将它们转换为您想要的 HTML。
;)
关于php - BBcode解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3517357/