PHP:在<;之间从字符串包装链接;a></a>;标签

PHP:在<;之间从字符串包装链接;a></a>;标签,php,url,hyperlink,str-replace,htmlspecialchars,Php,Url,Hyperlink,Str Replace,Htmlspecialchars,我有以下PHP代码: $y = $_POST['message']; $pre = htmlspecialchars($y, ENT_QUOTES); $msg = str_replace("&lt;br&gt;", "<br>", $pre); 应该像这样缠绕: <a href="http://www.example.com">http://www.example.com</a> 如果更简单,我显然更喜欢[URL][/URL]方法

我有以下PHP代码:

$y = $_POST['message'];

$pre = htmlspecialchars($y, ENT_QUOTES);

$msg = str_replace("&lt;br&gt;", "<br>", $pre);
应该像这样缠绕:

<a href="http://www.example.com">http://www.example.com</a>

如果更简单,我显然更喜欢[URL][/URL]方法,同样地,[IMG][/IMG]


有人能给我指出正确的方向吗?我在这里找了好几个小时,没有任何东西能满足我的需要:/

这通常是用正则表达式完成的,在这里你可以用谷歌链接正则表达式,你会得到一堆示例和教程。但是,如果$\u POST['message']不是一个巨大的字符串,并且不包含很多链接,那么实际上可以在[URL]上分解,然后在explode()的数组结果中找到[/URL],并计算链接长度。从这里开始,您只需添加锚定标记和substr链接,因为您已经知道原始数组元素的长度。

一种非常简单的方法:

$input = '[URL]xxx[/URL]';

$url = explode('[URL]', $input);
$url = explode('[/URL]', $url[1]);
$url = '<a href="' . $url[0] . '"/>Link</a>';

echo $url;
$input='[URL]xxx[/URL]';
$url=分解(“[url]”,$input);
$url=explode(“[/url]”,$url[1]);
$url='';
echo$url;

当然,有更好的方法可以做到这一点。可能使用regex或preg_replace。

看看这个:太棒了!非常感谢。很好用!我可以用它来处理图像!!非常感谢!:)但永远不要忘记安全!您永远不知道用户将输入什么;)它不是一个巨大的字符串,但无论如何,我都不知道如何将其限制为少量字符(500,ex):s(在PHP端,因为我可以轻松地用JavaScript验证它)。在PHP领域,我自己也不是一个优秀的程序员,因此,我将以帕特里克·布劳尔斯(Patrick Browers)为例:)这基本上是我建议的,但却是用代码编写的:D如果你选择这样做没关系,但你应该意识到这是一个非常低效的事实,不应该用于大量文本或大量请求。祝你好运P
$input = '[URL]xxx[/URL]';

$url = explode('[URL]', $input);
$url = explode('[/URL]', $url[1]);
$url = '<a href="' . $url[0] . '"/>Link</a>';

echo $url;