【发布时间】:2018-03-11 12:25:29
【问题描述】:
我正在尝试将文本自动格式化为 PHP 中的链接,但将长 URL 修剪到最大字符限制。并从输出的文本中删除“http(s)”。
blah blah http://example.com/some-long-slug-goes-here foo
应该翻译成:
blah blah <a href="http://example.com/some-long-slug-goes-here">example.com/some-long-sl...</a> foo (blah blah example.com/some-long-sl... foo)
在此处找到preg_replace 解决方案:How do I linkify urls in a string with php?,但我无法根据需要对其进行编辑。
$string = preg_replace(
"~[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]~",
"<a href=\"\\0\">\\0</a>",
$string
);
【问题讨论】:
-
正如@chris85 提到的,并将其用作替换
<a href="\0">\1</a>(显然已转义)