我能够组合一个代码来显示一个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";
}
}
我错过了什么?如何使“(删除)”删除该特定电子邮件地址(或行)?
谢谢
答案 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
循环。