Ich noch mal.
Das Erzeugen eines CSV-String mit mehreren Textzeile per PHP funktioniert:
$out = fopen('php://temp', 'r+b');
foreach ( $csv_arr as $zeile ) {
// fputcsv($fp, $input, $delimiter, $enclosure);
fputcsv( $out, $zeile, ';', '"' );
}
rewind($out);
$csv_string = rtrim(stream_get_contents($out), "\n");
fclose($out);
PHP erkennt auch,wenn der Feldtrenner im Text vorkommt und schließt den Text ein mit "
...;"Georg;";Hohmann;...
String wird zum Browser geschickt, Javascript muss diese Zeile (row) wieder auseinandernehmen:
var row = rows[i].split(";");
for (let i=0; i<row.length; i++ ) {
// einschliessende " pro Wert entfernen
if ( row[i][0] == '"' ) row[i] = row[i].substring(1, row[i].length-1 );
// doppelte "" werden zu einfachen "
row[i] = row[i].replace( /\"\"/g, '"' );
}
Das funktioniert so nicht. Wie kann ich JS beibringen, das Zeichen ;
innerhalb "
nicht als Feld-Trenner zu betrachten?
Linuchs