Buchstaben in einer CSV durch Zahlen ersetzen mit PHP

robinb112

Grünschnabel
Hallo zusammen,
ich bekomme täglich von unserem Lieferanten eine CSV Datei. In dieser sind bestimmte Buchstaben in einer Spalte enthalten. Das Problem ist nun dass ich diese Buchstaben in Zahlen umwandeln muss. Dies würde ich gerne per PHP durchführen, allerdings habe ich da überhaupt keine Ahnung wie ich das anstellen soll.
Ich wäre somit sehr verbunden wenn mir da jemand helfen könnte.

Danke
 
Wahrscheinlich wirst du regex auch brauchen können weil du ja schreibst mehrere Buchstaben. Sind das immer die gleichen Buchstaben und Zahlen oder sind die immer unterschiedlich ?
 
Hast Du das Skript aus der ersten Anwort verwendet? Poste das Skript und ein paar Beispielzeilen aus deiner CSV-Datei.
 
Code:
<?php
$csvfile = 'datei.csv';

$row = 0;
$fp = fopen('datei.csv', 'w');
if (($handle = fopen("datei.csv", "r")) !== FALSE) {
    while ($data = fgetcsv($handle, 200000, ";")) {

    $data[2] = str_replace(['G', 'R'], ['5', '0'], $data[2]);

    fputcsv($fp, $data);

    echo "<p> ".count($data)." Felder in Zeile ".$row++.": <br /></p>\n";
}
}

fclose($fp);
?>
 
Ich denke mal dass es an dem hier liegt:
"['G', 'R'], ['5', '0']"
PHP:
str_replace(['G', 'R'], ['5', '0'], $data[2]);

laut php.net konnte Ich dazu nichts finden um sicher zustellen dass es daran liegt. :)
Aber durchaus möglich.

Alternativ kannst du aber für die Suche ein Array nehmen, und ebenso für die Zahlen und es dann in deiner While-Schleife einbinen :)

PHP:
<?php
$text = "Hallo A, wo bleibt B, denn C ist mit D vorgegangen.";
$suche = array("A", "B", "C", "D");
$replace = array(0, 11, 55, 101);
$test = str_replace($suche, $replace, $text);
printf('<pre>%s</pre>', print_r($test, true));
?>

Hab Ich aktuell noch nicht getestet :)

[EDIT] gerate getestet:
http://sandbox.onlinephpfunctions.com/code/3e7388ba78a1feca3febf7bf92aa52023544d8fa

Ergebnis: Hallo 0, wo bleibt 11, denn 55 ist mit 101 vorgegangen.
 
Zuletzt bearbeitet:
Zurück