我遇到了一个脚本问题,该脚本应该打开存储在同一目录中的csv,进行更改,然后另存为新文件。
$path = $_SERVER["DOCUMENT_ROOT"]."/orderfeed/";
$rawexport = 'rawexport.csv';
$tempfile = 'temporary.csv';
$exportfiltered = 'export-filtered.csv';
if (file_exists($rawexport)) {
if ( unlink($exportfiltered) ) { // Delete previous filtered export
print "Deleted previous $exportfiltered before import<br>";
} else {
print "Delete of previous $exportfiltered before import failed!<br>";
}
$input = fopen($rawexport, 'r'); //open for reading
$output = fopen($tempfile, 'w'); //open for writing
while( false !== ( $data = fgetcsv($input) ) ){ //read each line as an array
//modify data here
if ( $data[14] == 'Rate Name' ) {
$data[14] = 'RATE_NAME';
}
//write modified data to temporary file
fputcsv( $output, $data);
}
//close both files
fclose( $input );
fclose( $output );
if ( unlink($rawexport) ) { // Delete raw export file
print "Deleted $rawexport<br>";
} else {
print "Delete of $rawexport failed!<br>";
}
if ( copy($path.$tempfile, $path.$exportfiltered) ) { // Rename temporary to new
print "Export renamed<br>";
} else {
print "Export was not renamed!<br>";
}
echo '<pre>';print_r(error_get_last());echo '</pre>';
} else {
die('Import file not found!');
}
它在第一次运行时完美运行,但在后续运行中虽然创建的临时文件显示了源csv中的任何更新,但它们并没有保存到&quot; export-filtered.csv&#39;文件?
我最初使用的是rename()而不是copy(),但是它也没有用。