我有一个模板CSV文件,其中包含像{$NAME}
这样的占位符
现在我想用实际值替换所有这些占位符。
我正在使用Laravel,但这并不重要。
目前的做法如下:
$templateCSV = Storage::get('quote.intake.form.template.csv'); // 读取文件内容 $vars = [ // 定义占位符和实际值 '{$AGENT_NAME}' => $agent['name'], '{$AGENT_PHONE}' => $agent['phone'], ]; $newCSV = strtr($templateCSV, $vars); // 最后替换这些占位符。 Storage::put("my-new-csv.csv", $newCSV); // 保存新的CSV文件
这样做是有效的,但我认为这不是正确的方法,因为当一个值包含“,”时,它会破坏CSV结构。
我相信一定有更好的方法来做这个。
非常感谢您的帮助。
您可以用双引号包裹值,但这意味着您需要在值内部转义双引号:
注意:在双引号包裹的CSV值中,双倍双引号似乎是正确的转义双引号的方式。