我想让文本输出中的 URL 可点击,而不必转义整个输出。首先我想这样做,但我必须逃避所有输出,这是一个安全风险。
function formatContent($content)
{
$url_filter_protocol = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
$url_filter_www = "/(www)\.[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
if (preg_match($url_filter_protocol, $content, $url)) {
return preg_replace($url_filter_protocol, "<a href='$url[0]' target='_blank'>$url[0]</a> ", $content);
} elseif (preg_match($url_filter_www, $content, $url)) {
return preg_replace($url_filter_www, "<a href='https://$url[0]' target='_blank'>$url[0]</a> ", $content);
} else {
return $content;
}
}
{!! nl2br(formatContent($post->content)) !!}
有谁知道,我如何转换字符串中的 URL而不必转义到整个输出?
慕运维8079593