PHP implementiert das Ersetzen von Platzhaltern in CSV-Dateien durch tatsächliche Werte
P粉520204081
P粉520204081 2023-09-16 11:51:32
0
1
978

Ich habe eine CSV-Vorlagendatei, die Platzhalter wie {$NAME} enthält Jetzt möchte ich alle diese Platzhalter durch tatsächliche Werte ersetzen.

Ich verwende Laravel, aber das spielt keine Rolle.

Die aktuelle Praxis ist wie folgt:

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

Das funktioniert, aber ich glaube nicht, dass es der richtige Weg ist, weil es die CSV-Struktur zerstört, wenn ein Wert "," enthält.

Ich bin mir sicher, dass es dafür einen besseren Weg geben muss.

Vielen Dank für Ihre Hilfe.

P粉520204081
P粉520204081

Antworte allen(1)
P粉652495194

您可以用双引号包裹值,但这意味着您需要在值内部转义双引号:

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

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

注意:在双引号包裹的CSV值中,双倍双引号似乎是正确的转义双引号的方式。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!