我正在为我的表单邮件脚本编写一个php脚本来发送所有发送到管道分隔的csv文件的电子邮件,然后通过php数组显示csv文件。我需要允许用户通过将列表中的最后一个或第22个字段的ID /发票号从该列表传递到删除函数来删除条目,如下所示,但它将删除csv文件中的所有内容,不仅仅是这条线。这是我的代码。我比较传递给invoicenumber的id,如果它匹配,它应该删除该行并将其余的放回,但它会删除所有条目。PHP找到关键字并删除具有匹配关键字的整个行
我做你的更正如下,但它仍然是消灭所有条目:
if ($_POST['action'] == "Delete")
{
$id = $_GET['id'];
$fptemp = fopen('data-temp.csv', "a+");
if (($handle = fopen($dataFile, "r")) !== FALSE)
{
while (($data= fgetcsv($handle)) !== FALSE)
{
if ($id != $data[22])
{
fputcsv($data);
}
}
fclose($handle);
fclose($fptemp);
unlink($dataFile);
rename('data-temp.csv',$dataFile);
}
}
所以我在我的CSV文件有以下条目
1346785585|Martha|Stewart|[email protected]|555-444-2222|578 dude rd|dude|TN|57660|usa|Do it Yourself Cooking Book||389|12|||360|12|Credit Card|www.something.com||98.143.4.228|6c67b98
1346785588|Karen|b|[email protected]|555-444-2222|578 dude rd|dude|TN|57660|usa|Do it Yourself WebSite||389|12|||360|12|Credit Card|www.something.com||98.143.4.228|464b4ec
我想找到发票号码是所以假设我想找到“464b4ec”并删除整个条目组成
1346785588|Karen|b|[email protected]|555-444-2222|578 dude rd|dude|TN|57660|usa|Do it Yourself WebSite||389|12|||360|12|Credit Card|www.something.com||98.143.4.228|464b4ec
我想单独留下所有其他条目,我该怎么做?
你为什么覆盖你的循环内'$ id'? –