1

メールアドレスをループで1つずつ表示しようとしています。ただし、すべてのメール アドレスを 1 行に表示しているだけです。

メール.txt

「最初のメール」、「2 番目のメール」、「3 番目のメール」、「4 番目のメール」、「5 番目のメール」

メール.php

<?php 
$count=1;
$emails=readfile("../email.txt");
$email=explode(",",$emails);
foreach($email as $e){
    echo "$count Email : $e<br />\n";
$count=$count+1;
}
?>

期待される出力

「ファーストメール」

「セカンドメール」

「サードメール」

「フォースメール」

「フィフスメール」

しかし、私は得ています

「最初のメール」、「2 番目のメール」、「3 番目のメール」、「4 番目のメール」、「5 番目のメール」

4

3 に答える 3

3

それが基本的に何をするかreadfile()です。ファイルを読み取り、出力します。戻り値は、読み取られたバイト数です (出力には表示されません)。

私はそれがそのような関数のかなり悪い名前であることを認めますが、それはPHPで開発するときにあなたが見るであろう楽しいものです:-)

いずれにせよ、探している関数は次のfile_get_contents()とおりです。

$emails = file_get_contents("../email.txt");

アップデート

あなたが実際に探しているのは私には思えますfgetcsv()

$f = fopen('../email.txt', 'rt');
while (!feof($f)) {
    $row = fgetcsv($f);
    if ($row == false || $row[0] === null) {
        continue;
    }
    // $row is an array comprising the email addresses on one line
}
于 2013-07-14T08:05:46.140 に答える
1

コードは次のようになります。

<?php 
$count=1;
$emails= file_get_contents("../email.txt");
$email=explode(",",$emails);
foreach($email as $e){
    echo "$count Email : $e<br />\n";
$count=$count+1;
}
?>

出力: 1 メール: "firstemail" 2 メール: "secondemail" 3 メール: "thirdemail" 4 メール: "fourthemail" 5 メール: "fifthemail"

于 2013-07-14T08:08:17.007 に答える
0

表示されているコードは、言及している出力に対応していません...

このコード スニペットでは、番号を付ける必要はなく、代わりに各行に電子メール アドレスが必要であると想定しています。しかし、正しいコード スニペットは次のようになります。

<?php
if (file_exists('../email.txt'))
{
   $file_contents = file_get_contents('../email.txt');
   $emails = explode(',', $file_contents);
   foreach ($emails as $e)
   {
      echo $e."<br>\n";
   }
}
else
{ 
   echo 'file does not exist!';
}
?>
于 2013-07-14T08:08:12.883 に答える