相关疑难解决方法(0)

在PHP中,如何从一个文本块中提取多个电子邮件地址并将它们放入一个数组中?

我有一个文本块,我想从中提取有效的电子邮件地址并将它们放入一个数组中.到目前为止我有......

   $string = file_get_contents("example.txt"); // Load text file contents
   $matches = array(); //create array
   $pattern = '/[A-Za-z0-9_-]+@[A-Za-z0-9_-]+\.([A-Za-z0-9_-][A-Za-z0-9_]+)/'; //regex for pattern of e-mail address
   preg_match($pattern, $string, $matches); //find matching pattern
Run Code Online (Sandbox Code Playgroud)

但是,我得到一个只有一个地址的数组.因此,我猜我需要以某种方式循环这个过程.我怎么做?

php regex email

26
推荐指数
4
解决办法
3万
查看次数

从字符串中提取电子邮件地址 - php

我想从字符串中提取电子邮件地址,例如:

<?php // code
$string = 'Ruchika <ruchika@example.com>';
?>
Run Code Online (Sandbox Code Playgroud)

从上面的字符串我只想获得电子邮件地址ruchika@example.com.

请注意,建议如何实现这一目标.

php

17
推荐指数
4
解决办法
3万
查看次数

检测文本中的电子邮件

我正在尝试创建一个函数,将给定字符串中每个出现的纯文本电子邮件地址转换为它的html化版本.

假设我有以下代码,htmlizeEmails我正在寻找的功能在哪里:

$str = "Send me an email to bob@example.com.";
echo htmlizeEmails($str); // Echoes "Send me an email to <a href="mailto:bob@example.com">bob@example.com</a>."
Run Code Online (Sandbox Code Playgroud)

如果可能,我希望此功能使用该filter_var功能来检查电子邮件是否有效.

有谁知道如何做到这一点?谢谢!

编辑:

感谢您的答案,我用令人震惊的正则表达式匹配潜在的电子邮件地址,然后,只有filter_var验证它,它就会被取代.

function htmlizeEmails($text)
    preg_match_all('/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})/', $text, $potentialEmails, PREG_SET_ORDER);

    $potentialEmailsCount = count($potentialEmails);
    for ($i = 0; $i < $potentialEmailsCount; $i++) {
        if (filter_var($potentialEmails[$i][0], FILTER_VALIDATE_EMAIL)) {
            $text = str_replace($potentialEmails[$i][0], '<a href="mailto:' . $potentialEmails[$i][0] .'">' . $potentialEmails[$i][0] .'</a>', $text);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

php regex email preg-replace preg-match

15
推荐指数
2
解决办法
7945
查看次数

标签 统计

php ×3

email ×2

regex ×2

preg-match ×1

preg-replace ×1