PHP在csv上载脚本中格式化列(美元符号)

PHP在csv上载脚本中格式化列(美元符号),php,csv,Php,Csv,我有一个脚本,可以上传一个csv文件,其中包含3列(电话、姓名、金额)。该脚本删除手机上的任何格式,即;()-并将文件放在服务器上。文件中的“金额”列显示的金额类似于125.00,我需要它显示125.00美元。任何帮助都将不胜感激 $file_destination = '/****/****/****/***/' . $file_name_new; $contents = file_get_contents($file_tmp); $contents = str_replace("(","

我有一个脚本,可以上传一个csv文件,其中包含3列(电话、姓名、金额)。该脚本删除手机上的任何格式,即;()-并将文件放在服务器上。文件中的“金额”列显示的金额类似于125.00,我需要它显示125.00美元。任何帮助都将不胜感激

$file_destination = '/****/****/****/***/' . $file_name_new;

$contents = file_get_contents($file_tmp);

$contents = str_replace("(","",$contents);
$contents = str_replace(")","",$contents);
$contents = str_replace("-","",$contents);

file_put_contents($file_tmp, $contents);

if(move_uploaded_file($file_tmp, $file_destination)) {

无论您是要严格为输出重新格式化值,还是要将新的格式化数据存储在CSV文件中,使用
fgetcsv
fputcsv
可能会更有效。这些函数用于正确读取和写入CSV格式的文件

例子
与其进行覆盖str_替换并可能删除有效字符,为什么不直接使用并将其转换为数组呢。然后您可以循环并编辑每个/任何列或值。然后使用fputcsv将数组写回。现在还不清楚您在问什么。是否要将存储在CSV文件中的值从
125.00
更改为
125.00美元
,或者是否要输出格式相同的值?我需要金额以在其前面显示美元符号。如果可以简单地将第三列格式化为货币,那就太好了。如果“显示”的意思是“在电子表格软件中显示”,那么这实际上与PHP或CSV无关。CSV文件是简单、扁平、逗号分隔的值文件。它们没有嵌入的格式选项。您的电子表格软件可能有这样的显示选项,但这不是StackOverflow的问题。StackOverflow用于编程问题。
$rows = [];
if (($handle = fopen($file_tmp, "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        list($phone, $name, $amount) = $data;
        $phone = str_replace(['(',')','-'], '', $phone);
        $amount = sprintf('$%.2f', $amount);
        // you can build a new array with the updated values
        $rows[] = [$phone, $name, $amount];
        // or output directly
        echo "$phone | $name | $amount";
    }
    fclose($handle);
}

// if you want to save the destination with the updated information...
$fp = fopen($file_destination, 'w');

foreach ($rows as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);