【问题标题】:Get data from csv file using php使用php从csv文件中获取数据
【发布时间】:2012-08-27 09:48:12
【问题描述】:

我有 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如下:

<?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 文件中获取邮件。但它不起作用。

请任何人帮助我, 谢谢

【问题讨论】:

  • 你还没有告诉我们问题出在哪里。
  • 问题是:它没有显示任何带有$data[3] 值的东西。

标签: php cakephp cakephp-2.0 cakephp-2.1


【解决方案1】:

据我所知,您正试图阻止脚本输出重复的电子邮件地址。解决这个问题很容易。您需要做的是设置一个数组来存储您将输出的电子邮件地址。在向此数组添加电子邮件之前,您需要检查该电子邮件是否之前尚未添加到其中。如果已经添加,不要添加。如果尚未添加,请执行添加。这个检查可以在in_array() 函数的帮助下完成。

通过这样做,您将得到一个不会包含任何重复电子邮件地址的数组。

【讨论】:

    猜你喜欢
    • 2013-05-12
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多