【发布时间】:2012-02-23 09:53:28
【问题描述】:
我在将纯文本转换为 url 时遇到了一点问题。 我喜欢的是,如果我有这样的文字:www.google.com,它会转换为
<a href="www.google.com" target="_blank">www.google.com</a>
我有点像 RegEx 菜鸟,但我试过这个:
$description = preg_replace('@(www.([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="$1" target="_blank">$1</a>', $description);
description var 是一段文本,可以包含未转换的 url。
通过上面的代码,我得到了这个链接:
<a target="_blank">www.google.com</a>
所以省略了 href 部分。对于您的 RegEx 向导来说,这一定是小菜一碟,所以提前感谢您的每一个帮助。
如果有另一种(更好的?)方法可以将纯文本转换为 url,你可以这样说,我会试试的。
【问题讨论】:
-
我已尝试运行您的代码,它确实运行良好。你用的是哪个php版本?
-
你能发布一个
$description的示例值吗? -
给你:En je bent overal welkom als je maar Breeddenkend bent!" Tempo (www.temponieuwsbrief.be) mocht op kotbezoek!
-
您在 PHP 中发现了一个错误,或者您没有正确调试。该文本在 PHP 5.3.3、5.3.6 和 5.3.10 中确实有效。在其文件上运行pastebin.com/YqqQRSnV 的内容,如果可行,请告诉我。
-
我不是 PHP 人,但我看不出这可能是正则表达式问题。您的替换字符串是静态的,并且其中包含 href,那么正则表达式如何删除它?必须在下游。