如何将字符串中的URL与php链接?

Ale*_*lex 32 php string url

我有以下字符串:

"Look on http://www.google.com".
Run Code Online (Sandbox Code Playgroud)

我需要将其转换为:

" 请访问http://www.google.com "

原始字符串可以包含多个URL字符串.

我怎么在PHP中这样做?

谢谢

Ben*_*Ben 59

您可以使用以下内容:

$string = "Look on http://www.google.com";
$string = preg_replace(
              "~[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]~",
              "<a href=\"\\0\">\\0</a>", 
              $string);
Run Code Online (Sandbox Code Playgroud)

PHP版本<5.3(ereg_replace)否则(preg_replace)

  • 对于那些可能会读到这个答案的人:请注意,在PHP> = 5.3时,**`ereg_*`函数已被弃用** - 而且你应该使用`preg_*`代替. (13认同)
  • 完善!!它完全按照我的意愿工作.谢啦 (2认同)
  • 当用pred(Unknown modifier'+')替换ereg时,它不起作用.我应该改变别的吗? (2认同)

Cal*_*Cal 21

lib_autolink 做得很好,避免链接后的额外标点符号和HTML标记内的链接等陷阱:

https://github.com/iamcal/lib_autolink

  • 我从来没有使用它,甚至几乎没有看过它,但这似乎是一个比试图推动自己更好的解决方案.+1 (4认同)

Bou*_*uke 6

看看正则表达式.那么你会做一些类似:

$text = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $text);
Run Code Online (Sandbox Code Playgroud)