1

问这个问题我感觉像个业余爱好者,但我为此苦苦挣扎了很长时间,无法解决问题。

我正在制作一个包含嵌入式 YouTube 视频和富文本编辑器的论坛。我需要一个函数将 HTML 标签转换为 BBCode,另一个将 BBCode 转换回 HTML。

BBCode 转 HTML

$message = (get message from database);
$A = '/\[youtube](.*?)\[\/youtube\]/is';
$B = '<object type="application/x-shockwave-flash" data="http://www.youtube.com/v/$1" width="425" height="350"><param name="movie" value="http://www.youtube.com/v/$1"><param name="wmode" value="transparent"></object>';
preg_replace($A, $B, $message);

我需要一个脚本来反转这个过程,将 HTML 转换为 BBCode。如果有人可以帮助我,我将非常感激,或者可能会建议一种更简单的方法(如果存在),或者甚至是可以提供对该问题的一些见解的链接。

谢谢你。

4

1 回答 1

1

试试这个

$message = 'Some text
<object type="application/x-shockwave-flash" data="http://www.youtube.com/v/abcdefgh" width="425" height="350"><param name="movie" value="http://www.youtube.com/v/abcdefgh"><param name="wmode" value="transparent"></object>
More text
<object type="application/x-shockwave-flash" data="http://www.youtube.com/v/abcdefgh" width="425" height="350"><param name="movie" value="http://www.youtube.com/v/abcdefgh"><param name="wmode" value="transparent"></object>
Even more text';

echo preg_replace("/\<object.*?youtube\.com\/v\/(.*?)\".*?object\>/ims", "[youtube]$1[/youtube]", $message);
于 2013-03-14T00:16:04.687 回答