-2

私は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つ以上ある場合、同じメールを1つだけ取得したい。コード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ファイルからメールを取得するように記述しましたが、機能しません。

誰か助けてください、ありがとう

4

1 に答える 1

0

私が収集できることから、スクリプトが重複した電子メールアドレスを出力するのを止めようとしています。これを修正するのはとても簡単です。必要なことは、出力する電子メール アドレスを格納する配列をセットアップすることです。この配列に電子メールを追加する前に、電子メールが以前に追加されていないかどうかを確認する必要があります。すでに追加されている場合は、追加しないでください。まだ追加されていない場合は、追加してください。このチェックは、in_array()関数を使用して行うことができます。

これにより、重複する電子メール アドレスを保持しない配列が残ります。

于 2012-08-27T09:54:54.740 に答える