我尝试在循环中逐个显示电子邮件地址。但是,它只是在一行中打印所有的电子邮件地址。
电子邮件.txt
"第一封电子邮件"、"第二封电子邮件","第三封邮件"、"四封邮件","五封邮件"
电子邮件.php
<?php
$count=1;
$emails=readfile("../email.txt");
$email=explode(",",$emails);
foreach($email as $e){
echo "$count Email : $e<br />'n";
$count=$count+1;
}
?>
预期输出
"第一封电子邮件"
"第二封电子邮件"
"thirdmail"
"第四封电子邮件"
"fifthemail"
但是,我得到
"第一封电子邮件"、"第二封电子邮件","第三封邮件"、"四封邮件","五封邮件"
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
}
您的代码应该如下所示:
<?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封电子邮件:"第一封电子邮件"2电子邮件:"第二封电子邮件"3电子邮件:"thirdmail"4电子邮件:"第四封电子邮件"5电子邮件:"fifthemail"
显示的代码与您提到的输出不一致。。。
此代码段假定您不需要编号,而只需要在每行中都有一个电子邮件地址。但一个正确的代码片段应该是这样的:
<?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!';
}
?>