【问题标题】:Extract Email from Headers从标题中提取电子邮件
【发布时间】:2014-11-18 02:50:42
【问题描述】:

似乎无法让我的代码工作。警告:preg_match_all() 期望参数 2 是字符串,数组在第 23 行的 /script.php 中给出。我正在寻找一个电子邮件地址列表:

<?php
$mbox = imap_open("{******.com:143/notls}", "******@******.com", "******");

echo "<h1>Email Addresses</h1>\n";
$headers = imap_headers($mbox);

if ($headers == false) {
echo "Call failed<br />\n";
} else {
foreach ($headers as $val) {
preg_match_all('/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)\r\n/m', $headers, $matches);
echo $maches[2] . "<br />\n";
}
}

imap_close($mbox);
?>

【问题讨论】:

    标签: php imap imap-open


    【解决方案1】:
    preg_match_all('/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)\r\n/m', $headers, $matches);
    

    应该是

    preg_match_all('/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)\r\n/m', $val, $matches);
    

    您正在遍历数组,但每次循环都将整个数组输入preg_match_all 函数。

    另外,你有一个错字:

    echo $maches[2] . "<br />\n";
    

    应该是

    echo $matches[2] . "<br />\n";
    

    【讨论】:

    • 更近了一步,但打印的只是数组,它没有给我价值。
    猜你喜欢
    • 2013-01-24
    • 1970-01-01
    • 2010-11-21
    • 2018-05-22
    • 1970-01-01
    • 2021-12-23
    • 2016-04-12
    • 1970-01-01
    • 2021-07-09
    相关资源
    最近更新 更多