我有csv文件mail.csv
我的文字如下:
d,2012-08-24 00:00:57+0200,2012-08-24 00:00:45+0200,noreply@news.camera-factice.com,...
d,2012-08-24 00:00:57+0200,2012-08-24 00:00:45+0200,noreply@118-bonsplans.com,toulouse@texa.fr,...
b,2012-08-24 00:00:57+0200,2012-08-22 23:59:31+0200,noreply@lemeilleur-duweb.com,...
b,2012-08-24 00:00:57+0200,2012-08-22 23:59:31+0200,noreply@lemeilleur-duweb.com,...
我想只获得mail.exaple:noreply@lemeilleur-duweb.com
。如果邮件中有2封或更多邮件是相同的,我只想收一封邮件。我的代码如下:
<?php
$handle = fopen('acct-2012-08-24-0001.csv', 'r');
$mail = 'noreply@118-bonsplans.com';
$respon = 'fail';
$Totalcounter = 0;
$mailFail = 0;
$percentage = 0;
$data[]="";
if ($handle) {
while (($buffer = fgets($handle, 4096)) !== false) {
if (stristr($buffer, '118-bonsplans.com')) $Totalcounter += 1;
if(($data = fgetcsv($handle, 1000, ",")) !== FALSE);
if (stristr($buffer, $mail) && stristr($buffer,$respon)) $mailFail += 1;
} fclose($handle);
//echo $data[3];
}
$percentage = ($mailFail/$Totalcounter)*100;
echo '<table border="1px">';
echo "<tr><td>Dormain</td><td>Total</td><td>Mail Fail</td><td>Percentage</td></tr>";
echo "<tr><td>".$data[3]."</td><td>".$Totalcounter."</td><td>".$mailFail."</td><td>".$percentage."</td></tr>";
echo '</table>';
?>
注意
对于这段代码,我写了if(($data = fgetcsv($handle, 1000, ",")) !== FALSE);
来从csv文件中获取邮件。但它不起作用。
请任何人帮助我, 感谢
答案 0 :(得分:0)
从我可以收集到的内容 - 您试图阻止脚本输出重复的电子邮件地址。解决这个问题非常简单。您需要做的是设置一个数组,用于存储您要输出的电子邮件地址。在向此阵列添加电子邮件之前,您需要检查以前是否尚未添加电子邮件。如果已添加,不添加。如果尚未添加,执行添加。可以在in_array()功能的帮助下完成此检查。
通过这样做,您将留下一个不会包含任何重复电子邮件地址的数组。