2016-09-28 14 views
1

に行くようです。各電子メールに対して、メッセージが送信されます。このファイルでは何も変更されません。PHPは、私は、次のコードを使用しています無限foreachループ

ほとんどの場合、それは絶対にうまく動作し、各アドレスにただ1つのメッセージを送信します。ただし、無限ループに入り、複数のメッセージを同じアドレスに送信し始める場合があります。

必要に応じて追加の詳細を提供することができます。

+1

無限ループを引き起こす可能性のあるコードには何も表示されません。同じ人に複数の電子メールを送信する場合、 '$ file'に複数回表示された場合、私が見ることができる唯一の方法です。 –

+0

'$ check = file_get_contents( 'file.txt');'なぜこれをすべての繰り返しで読みますか? –

+0

Btw、 '$ headers。= 'From:' ... 'に構文エラーがあります。 "\ r \ n"; '(1つのハイフンが多すぎます)。 – syck

答えて

0

無限ループを引き起こす可能性のあるものはありません。 電子メールアドレスを持つファイルには、おそらく電子メールが重複しています。

が確認するために、このような何かを試してみてください:

$array = explode("\n", file_get_contents($file)); 
print_r(array_count_values($array)); 

それはする必要があり、このような何かを出力:

Array 
(
[[email protected]] => 2 
[[email protected]] => 1 
[[email protected]] => 3 
... 
) 
+0

ありがとうございます。このリストには重複した電子メールは含まれていません。私はちょうどそれをチェックして、私は手動でそれを編集するため、私は確かに知っている。 –

0

あなたのコードは、文字列を連結するための時間にわずかな誤差があります。

間違っ

$headers .= 'From: '...' . "\r\n"; 

$headers = 'From: . \ R \ n"; 

そして私はある値を確認するために、 'のvar_dump($配列)' をしようと、foreachので無限ループを生成することができます何も表示されません。あなたに来る。

+0

コメントありがとうございました。私はvar_dump関数を実際に試してみます。これは参考になるかもしれません。しかし、このスクリプトはほとんどの場合よく機能します。私が気づいたのは、無限ループにならず同じ電子メールを同じ受信者に複数回送信するということです。 –

関連する問題