用于显示CSV文件的PHP代码,其中包含删除每一行的选项

时间:2011-12-03 20:05:18

标签: php csv fopen file-handling

我能够组合一个代码来显示一个CSV文件,其中包含一个简报组的电子邮件列表(每行是一个电子邮件地址)。我正在努力在每个电子邮件地址前面添加“删除”功能,以防电子邮件不再有效(或者用户不再希望接收电子邮件)。这就是我所拥有的:

function my_magic_function(){

$file = TEMPLATEPATH."/user_list.csv";

if (file_exists($file )) {

    $handle = fopen($file , "r+");

    echo '<p><a href="/wp-content/themes/summer/user_list.csv"> Download the CSV File</a></p>';

    $contents = fread($handle, filesize($file));

    $emails = explode(',',$contents);

    for ($x=0; $x<count($emails) -1; $x++){

        echo $emails[$x]."; (remove)<br />";

    }

    fclose($handle);

}else{

    echo "empty";

}

}

我错过了什么?如何使“(删除)”删除该特定电子邮件地址(或行)?

谢谢

1 个答案:

答案 0 :(得分:1)

输出删除链接:

 echo "<a href=delete.php?mail=$email[x]>delete</a> ";

在该删除脚本中再次读入数组中的电子邮件列表。使用array_search()查找条目,然后对返回的密钥执行简单的unset()。然后再写回文件。

 $emails = str_getcsv(file_get_contents("emails.txt"));

 $del_index = array_search($emails, $_GET["mail"]);
 unset($emails[ $del_index ]);

 file_put_contents("email.txt", join(", ", $emails));

另请考虑使用foreach而不是for循环。