PHP melaksanakan penggantian ruang letak dalam fail CSV dengan nilai sebenar
P粉520204081
P粉520204081 2023-09-16 11:51:32
0
1
993

Saya mempunyai fail CSV templat yang mengandungi ruang letak seperti {$NAME} Sekarang saya mahu menggantikan semua ruang letak ini dengan nilai sebenar.

Saya menggunakan Laravel, tetapi itu tidak penting.

Amalan semasa adalah seperti berikut:

$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文件

Ini berfungsi, tetapi saya rasa ia bukan cara yang betul untuk melakukannya kerana ia memecahkan struktur CSV apabila nilai mengandungi ",".

Saya pasti mesti ada cara yang lebih baik untuk melakukan ini.

Terima kasih banyak atas bantuan anda.

P粉520204081
P粉520204081

membalas semua(1)
P粉652495194

Anda boleh membalut nilai dalam petikan berganda, tetapi ini bermakna anda perlu melepaskan petikan berganda di dalam nilai:

$sanitiseCsv = fn ($value) => '"'.str_replace('"', '""', $value).'"';

$vars = [ // 使用实际值定义占位符
   '{$AGENT_NAME}'  => $sanitiseCsv($agent['name']),
   '{$AGENT_PHONE}'  => $sanitiseCsv($agent['phone']),
];

Nota: Menggandakan petikan berganda nampaknya merupakan cara yang betul untuk melepaskan petikan berganda dalam nilai CSV yang dibalut dengan petikan berganda.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan