Mit Hilfe des folgenden PHP-Schnipsels kann eine beliebige Zeile aus einer CSV-Datei herausgelöscht werden. Wer Interesse hat, kann den nachfolgenden Quelltext gerne unter Berücksichtigung der GNU AGPL weiterverwenden und/oder erweitern.
<?php
/**
* This function removes a specified row of a CSV file.
*
* @author Pascal Hollenstein <webmaster@zockerade.com>
* @version 1.0
* @license GNU AGPL
*
* @param string $file_path The path to the CSV file.
* @param integer $row_to_remove The row that has to be removed.
* @param string $delimiter The delimiter that separates the values (this parameter is optional).
*
* @return boolean
*/
function remove_csv_row($file_path, $row_to_remove, $delimiter = ",") {
$has_been_removed = false;
if (is_readable($file_path) && is_writable($file_path)) {
$handle = fopen($file_path, "r");
$csv_content = array();
$current_row = 0;
while (($current_data = fgetcsv($handle, 0, $delimiter)) !== false) {
if ($current_row !== $row_to_remove) {
array_push($csv_content, implode($delimiter, $current_data));
} else {
$has_been_removed = true;
}
$current_row++;
}
if (file_put_contents($file_path, implode(PHP_EOL, $csv_content)) === false) {
fclose($handle); return false;
}
fclose($handle);
}
return $has_been_removed;
}
?>