自动在静态文本中创建电子邮件链接,URL链接

时间:2017-06-02 11:14:51

标签: php regex

我有来自用户输入的文字。在文中包括所有类型的电子邮件和链接以“http / https / www”开头。 例如:我有一个如下文字。

Lorem ipsum dolor email@foo.com sit amet https://foo.com/path?query=string 
Lorem ipsum foo.com www.foo.com Lorem ipsum dolor

执行输出将是。

Lorem ipsum dolor <a href="mailto:email@foo.com>email@foo.com</a> sit amet <a href="https://foo.com/path?query=string">https://foo.com/path?query=string</a>
Lorem ipsum <a href="foo.com">foo.com</a> <a href="www.foo.com">www.foo.com</a> Lorem ipsum dolor

1 个答案:

答案 0 :(得分:1)

试试此代码,请参阅此demo

<?php
$linkArray = ['Lorem ipsum dolor sit amet','email@gmail.com','google.com','https://www.google.com'];
foreach($linkArray as $link){
    if(preg_match('/((https:\/\/)?([A-z]+@)?([A-z]+)?\.([A-z]+)?)/',$link,$match)){
        if(preg_match('/(@)/',$link,$m)){
            echo '<a href="mailto:'.$match[1].'">'.$match[1].'</a><br>';    
        }else{
            echo '<a href="'.$match[1].'">'.$match[1].'</a><br>';
        }
    }else{
        echo $link.'<br>';
    }
}
?>
相关问题