您可以使用preg_replace() 执行此操作的方式
这是我写的一个简单的函数,希望对你有帮助。
$text = "[center][youtube]vn9mMeWcgoM[/youtube] [/center] [center]This is a test youtube post video [/center][center][img]http://3.bp.blogspot.com/-RgszeTgP4eA/Vck93de-LZI/AAAAAAAAaOQ/F0s-XK5Zh4c/w1200-h630-p-k-no-nu/samabawan_island_leyte_philippines.jpg[/img][/center]";
function replace($string){
$string = preg_replace("/\[center\](.*?)\[\/center]/", "<div align='center'>$1</div>", $string);
$string = preg_replace("/\[youtube\](.*?)\[\/youtube]/", "<iframe src=\"https://www.youtube.com/embed/$1\"></iframe>", $string);
$string = preg_replace("/\[img\](.*?)\[\/img]/", "<img src='$1' />", $string);
return $string;
}
echo replace($text);
对于你的代码,这样称呼它,echo nl2br(replace($item['content']));
已编辑
这是添加更多标签的方法,
先读一下函数preg_replace()
阅读Possible modifiers in regex patterns了解更多信息。
现在你可以添加了,
$string = preg_replace("/\[url\](.*?)\[\/url]/", "<a href=\"$1\" >$1</a>", $string);
在我的简单函数中的最后一个 $string 变量之后。
这意味着将 URL 标记内的内容替换为 <a href=\"$1\" >$1</a>
$1 是 URL,在大多数情况下 $1 是您想要的元素。