PREG_REPLACE BBCode链接

本教程将介绍PREG_REPLACE BBCode链接的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

PREG_REPLACE BBCode链接 教程 第1张

问题描述

我有这个bbcode

[url=http://www.youtube.com/watch?v=h1bIEK1h150]If I offer you my soul[/url]

例如。我怎么才能将其变成这样:

<a href="https://www.qumuban.com/redirect/aHR0cDovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWgxYklFSzFoMTUw" target="_blank" target="_blank">If I offer you my soul</a>

推荐答案

您需要正则表达式。考虑到bbcode可以有文本URL,也可以只有URL,请问需要两条语句:

$message = preg_replace('@[url=([^]]*)]([^[]*)[/url]@', '<a href="$1">$2</a>', $message);
$message = preg_replace('@[url]([^[]*)[/url]@', '<a href="$1">$1</a>', $message);

另外,如果您从PHPBB解析bbcode,它可以具有唯一的用户标识符:

$uid = '[0-9a-z]{5,}';
$message = preg_replace('@[url=([^]]*):'. $uid . ']([^[]*)[/url:'. $uid . ']@', '<a href="$1">$2</a>', $message);
$message = preg_replace('@[url:'.$uid . ']([^[]*)[/url:'. $uid . ']@', '<a href="$1">$1</a>', $message);

好了关于PREG_REPLACE BBCode链接的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。