1

最近,我向我拥有的一个旧电子邮件数据库发送了一份时事通讯。在创建了几年后,这些电子邮件中似乎有大约 30% 处于非活动状态 - 我收到了数千封邮件传递失败消息。

所有这些失败通知都以文本文件的形式存储在我的服务器上,它们是包含我发送给订阅者的文本的回复。每封电子邮件的文本中都有用户 ID。这个 id 前面有一些常见的文本,比如

<a href="abc.com?id=123321"></a>

我想从我收到的每个故障报告中提取“123321”。

首先,我开始手动执行此操作并一一收集所有内容。在收到 500 封电子邮件后,我的眼睛感觉在地板上,我确信有一个使用 php 和一些功能的解决方案。我正在考虑将它们全部放入一个大文件中,并找到一种 preg_match 方法来做到这一点,或者尝试使用正则表达式。

您将如何处理这样的问题,我应该在哪里寻找解决方案?

4

1 回答 1

1

对于小数据样本,这似乎对我有用。只要您不会因为尝试一次加载所有数据而耗尽内存,它就应该可以工作:

$data = file_get_contents("data.txt");
preg_match_all('#(?<=<a href="abc\.com\?id=)\d+(?="></a>)#',$data,$matches);
print_r($matches);
于 2012-05-02T05:23:30.627 回答