以下代码将段落中的每个链接更改为可点击的 [外部链接] 。
我必须运行两次以捕获HTTP和HTTPS。
1)有没有办法把它变成一行?
2)我如何更改它而不是 [外部链接] 它只显示域名?与 google.com 类似,但实际链接可能会更长。我使用 [外部链接] 的原因是缩短较长的网址。
//Regular HTTP links
$text = preg_replace('/(^|[^"])(((f|ht){1}tp:\/\/)[-a-zA-Z0-9@:%_\+.~#?&\/\/=]+)/i', '\\1<a href="\\2" target="_blank">[external link]</a>', $text);
//HTTPS links
$text = preg_replace('/(^|[^"])(((f|ht){1}tps:\/\/)[-a-zA-Z0-9@:%_\+.~#?&\/\/=]+)/i', '\\1<a href="\\2" target="_blank">[external link]</a>', $text);
答案 0 :(得分:0)
你可以加一个?制作&#34; s&#34;可选的。
https://regex101.com/r/loRV7S/1/
$text = preg_replace('/(^|[^"])(((f|ht){1}tps?:\/\/)[-a-zA-Z0-9@:%_\+.~#?&\/\/=]+)/i', '\\1<a href="\\2" target="_blank">[external link]</a>', $text);