输入可点击的电子邮件和网址

Gen*_*nik 1 php forms input

我有一个用PHP处理的表单.用户有时会将他们的电子邮件地址放在表单或URL中.在剥离标签输入后,这些通常以文本形式出现.

最近,当我们的用户拉出显示其输入的页面(现在从数据库中提取)时,我的用户开始要求我使他们的URL和电子邮件可以点击.

有人可以建议一个共同的模式或方法来处理这个问题吗?基本上,如果有人在表单中输入网址,如何在查看时使网址可点击而不是文字?

谢谢,亚历克斯

Nig*_*gel 7

您可以使用这样的基于正则表达式的函数

function  autolink($message) { 
    //Convert all urls to links
    $message = preg_replace('#([\s|^])(www)#i', '$1http://$2', $message);
    $pattern = '#((http|https|ftp|telnet|news|gopher|file|wais):\/\/[^\s]+)#i';
    $replacement = '<a href="$1" target="_blank">$1</a>';
    $message = preg_replace($pattern, $replacement, $message);

    /* Convert all E-mail matches to appropriate HTML links */
    $pattern = '#([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.';
    $pattern .= '[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)#i';
    $replacement = '<a href="mailto:\\1">\\1</a>';
    $message = preg_replace($pattern, $replacement, $message);
    return $message;
Run Code Online (Sandbox Code Playgroud)