代码之家  ›  专栏  ›  技术社区  ›  steve

从href link获取电子邮件地址

  •  0
  • steve  · 技术社区  · 6 年前

    我如何从任何给定的电子邮件地址中提取 href

    $str = 'mailto:john.doe@outlook.co.uk?subject=hiya';
    

    目前我是这样做的:

    $str = str_replace('mailto:', '', $str);
    $str = explode('?', $str);
    $str = $str[0];
    

    2 回复  |  直到 6 年前
        1
  •  1
  •   ewcz    6 年前

    或者,您可以使用 parse_url :

    <?php
    
    $str = 'mailto:john.doe@outlook.co.uk?subject=hiya';
    print_r(parse_url($str));
    
    ?>
    
    Array
    (
        [scheme] => mailto
        [path] => john.doe@outlook.co.uk
        [query] => subject=hiya
    )
    
        2
  •  0
  •   Josh Stevens    6 年前

    function extract_emails($str){
        // This regular expression extracts all emails from a string:
        $regexp = '/([a-z0-9_\.\-])+\@(([a-z0-9\-])+\.)+([a-z0-9]{2,4})+/i';
        preg_match_all($regexp, $str, $m);
    
        return isset($m[0]) ? $m[0] : array();
    }
    

    '收件人:john.doe@outlook.co.uk?主题=你好

    '收件人:john.doe@outlook.co.uk?主题=你好 我叫乔希这是个测试test@hotmail.co.uk'

    返回['约翰·多伊@outlook.co.uk', 'test@hotmail.co.uk']

    这将从提供的文本中的任何位置提取电子邮件,并可以处理多个电子邮件提取。所以现在你可以输入一个完整的句子,它会返回一系列电子邮件。这样你得到了一些理论上完全可重用的东西,如果范围每增加一次。