将 links 转换为 hyperlinks 但第一个 link 转换所有其他
Converting links to hyperlinks but the first link convert all the others
我有一个允许用户发送项目描述的小表格,我想将每个 links 转换为 hyperlinks 但我的代码有问题,当它找到第一个 link 时,它会用相同的 link 转换所有其他 hyperlink。因此,当文本输入包含一个 link 时,此代码有效,但一旦包含 2 个或更多,问题就会弹出!
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
if(preg_match($reg_exUrl, $_POST['description'], $url))
{
$_POST['description'] = preg_replace($reg_exUrl, '<a target="_blank" href="'.$url[0].'">'.$url[0].'</a>', $_POST['description']);
}
示例 - 1 link:
Text input: "blablabla http://google.com"
Result: "blablabla <a href="http://google.com">http://google.com</a>"
示例 - 2 links:
Text input: "blablabla http://google.com
blablabla http://youtube.com"
Result: "blablabla <a href="http://google.com">http://google.com</a>
blablabla <a href="http://google.com">http://google.com</a>"
我希望我说得足够清楚,如果您对如何解决这个问题有任何想法,那就太棒了!
谢谢
尝试
function makeClickableLinks($s)
{
return preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="" target="_blank"></a>', $s);
}
调用函数
echo makeClickableLinks($_POST['description']);
我有一个允许用户发送项目描述的小表格,我想将每个 links 转换为 hyperlinks 但我的代码有问题,当它找到第一个 link 时,它会用相同的 link 转换所有其他 hyperlink。因此,当文本输入包含一个 link 时,此代码有效,但一旦包含 2 个或更多,问题就会弹出!
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
if(preg_match($reg_exUrl, $_POST['description'], $url))
{
$_POST['description'] = preg_replace($reg_exUrl, '<a target="_blank" href="'.$url[0].'">'.$url[0].'</a>', $_POST['description']);
}
示例 - 1 link:
Text input: "blablabla http://google.com"
Result: "blablabla <a href="http://google.com">http://google.com</a>"
示例 - 2 links:
Text input: "blablabla http://google.com
blablabla http://youtube.com"
Result: "blablabla <a href="http://google.com">http://google.com</a>
blablabla <a href="http://google.com">http://google.com</a>"
我希望我说得足够清楚,如果您对如何解决这个问题有任何想法,那就太棒了!
谢谢
尝试
function makeClickableLinks($s)
{
return preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="" target="_blank"></a>', $s);
}
调用函数
echo makeClickableLinks($_POST['description']);