1

我正在尝试一一循环显示电子邮件地址。但是,它只是在单行中打印所有电子邮件地址。

电子邮件.txt

"firstemail","secondemail","thirdemail","fourthemail","fifthemail"

电子邮件.php

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

预期产出

“第一封邮件”

“第二封邮件”

“第三封邮件”

“第四封邮件”

“第五封邮件”

但是,我得到

"firstemail","secondemail","thirdemail","fourthemail","fifthemail"

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 回答