Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
"1"|"23.11-23.12.2017"|"in Musterstadt"|""
"2"|"23.11-23.12.2017"|"in Musterstadt"|""
"3"|"23.11-23.12.2017"|"in Musterstadt"|""
function removeEvent($wert)
{
$lines=file(CSV_FILE);
$num = sizeof($lines);
for ($i = 1; $i < $num; $i++) {
$entry = explode ("|", $lines[$i]); // Zeile an ~ splitten
if ($entry[0] == $wert) { // Wenn der erste Eintrag in Zeile $i gleich dem $wert ist, dann löschen
$num--;
for ($j = $i; $j < $num; $j++)
$lines[$j] = $lines[$j+1];
}
}
// Datei wieder neu schreiben.
$fp = fopen(CSV_FILE,"w+");
for ($i=0; $i < $num; $i++)
fwrite($fp, $lines[$i]);
fclose($fp);
}
if( isset($_POST['delete_date']) && ($_POST['delete_date'] =='Delete'))
{
$wert = $_POST['wert'];
removeEvent($wert);
}
Wichtig für die Frage, warum es nicht funktioniert, ist nicht nur das PHP, sondern auch, wie Du es aufrufst: Durch Ajax oder durch Submit eines Formulars? Werden die POST-Parameter richtig bereit gestellt?
function removeEvent($wert)
{
$lines = file(CSV_FILE);
$num = count($lines);
unlink (CSV_FILE);
for ($i = 0; $i < $num; $i++) {
$entry = explode ("|", $lines[$i]); // Zeile an ~ splitten
$first = str_replace('"', '', $entry[0]);
if ($first != $wert) file_put_contents(CSV_FILE, $lines[$i], FILE_APPEND);
}
}
if( isset($_POST['delete_date']) && ($_POST['delete_date'] =='Delete'))
{
$wert = $_POST['wert'];
removeEvent($wert);
}
Das Problem ist, dass Du die Einträge in deiner CSV-Datei in Hochkommas eingeschlossen hast. Wenn Du die Zeile mit split() entspr. | aufteilst, bleiben diese als Bestandteil des Strings erhalten, so dass der Vergleich mit $wert immer false ergibt. Da ich annehme, dass Du die Hochkommas für deinen übrigen Code brauchst, habe ich sie mit str_replace() entfernt. Dieses funktioniert bei mir:
PHP:function removeEvent($wert) { $lines = file(CSV_FILE); $num = count($lines); unlink (CSV_FILE); for ($i = 0; $i < $num; $i++) { $entry = explode ("|", $lines[$i]); // Zeile an ~ splitten $first = str_replace('"', '', $entry[0]); if ($first != $wert) file_put_contents(CSV_FILE, $lines[$i], FILE_APPEND); } } if( isset($_POST['delete_date']) && ($_POST['delete_date'] =='Delete')) { $wert = $_POST['wert']; removeEvent($wert); }