1

可能重复:
如何在 PHP 中自动将 url 转换为超链接?

假设我的网站上有一个文本字段,用户可以在其中输入任何他想要的内容。如果用户输入一个 url,我想在后台向这个 url 添加代码。因此,我需要逻辑才能识别网址。

示例 用户输入文本:

Please visit me at my website: http://www.mywebsite.org

我想把后台的代码改成这样:

Please visit me at my website: <a href="http://www.companywebsite.com/redirect.php?http://www.mywebsite.org">http://www.mywebsite.org</a>

提交文本后如何更改该链接?

4

4 回答 4

2
<?php

// The Regular Expression filter
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";

// The Text you want to filter for urls
$text = "The text you want to filter goes here. http://google.com";

// Check if there is a url in the text
if(preg_match($reg_exUrl, $text, $url)) {

       // make the urls hyper links
       echo preg_replace($reg_exUrl, "<a href="{$url[0]}">{$url[0]}</a> ", $text);

} else {

       // if no urls in the text just return the text
       echo $text;

}
?>
于 2012-11-27T13:21:00.520 回答
0

是的。只需使用正则表达式。见preg_replace

于 2012-11-27T13:19:13.150 回答
0

如果您正在保存用户输入并将其显示在网站上(正如我猜测的那样),您应该保存原始输入并在渲染时应用逻辑。

有关逻辑,请参见此处: 检测 URL 并在其周围添加 achor-tags

$link = preg_replace("/(http:\/\/[^\s]+)/", "<a href=\"$1\">$1</a>", $link);
于 2012-11-27T13:21:38.117 回答
0

哟也可以试试

$text = "Please visit me at my website: http://www.mywebsite.org
Please visit me at my website: http://www.mywebsite.org";
$newText    =   preg_replace('/((http|https|ftp):\/\/[^\s]+)/i',
'<a href="$1" class="link1" target="_blank">$1</a>', $text);
echo $newText;

这个

于 2012-11-27T13:30:53.130 回答