在Laravel中将字符串转换为html超链接

时间:2017-12-05 16:58:13

标签: php regex laravel preg-replace

我正在使用此代码来链接Laravel帖子中的链接:

{!! preg_replace('@(http(s)?)?(://)?(([a-zA-Z])([-\w]+\.)+([^\s\.]+[^\s]*)+[^,.\s])@', '<a href="http$2://$4" target="_blank" title="$0">$0</a>', nl2br(e($post))) !!}

但如果我输入:

您好。

你好吗?

我收到了这个奇怪的链接“你好./&gt;你好吗?”。

我该怎么办?我不知道如何使用正则表达式。我想只链接以http://,https://,www。开头的字符串,而不是像anyword.anydomain这样的链接。

1 个答案:

答案 0 :(得分:2)

我找到的最佳解决方案是此库:https://github.com/misd-service-development/php-linkify

$linkify = new \Misd\Linkify\Linkify();
$text = 'This is my text containing a link to www.example.com.';
echo $linkify->process($text);

输出:

这是我的文字,其中包含指向www.example.com的链接。