Fopen und Umlaute
Hi,
ich importiere mit einem PHP Script Datensätze in ein Onlineshop.
Die original Daten stehen in einer CSV mit Seminkolon getrennt und können, wenn ich diese in einem Test-Editor lese im Klartext gelesen werden.
Hier werden alle Sonderzeiche korret dargestellt. Sogar 8½ etc.
Öffne ich die Datei z.B. im Excel, so sieht hier auch noch alles super aus.
Lese ich aber die Datei mit fopen ein, so habe ich in den Variablen z.B. Statt "Schnürer Comfort" dies "Schnürer Comfort" und statt.
Was mache ich falsch, bzw. wie kann ich den Fehler korrigieren?
Hier ein auszug aus dem Code:
Vielen Dank,
Grüße
Ottscho
ich importiere mit einem PHP Script Datensätze in ein Onlineshop.
Die original Daten stehen in einer CSV mit Seminkolon getrennt und können, wenn ich diese in einem Test-Editor lese im Klartext gelesen werden.
Hier werden alle Sonderzeiche korret dargestellt. Sogar 8½ etc.
Öffne ich die Datei z.B. im Excel, so sieht hier auch noch alles super aus.
Lese ich aber die Datei mit fopen ein, so habe ich in den Variablen z.B. Statt "Schnürer Comfort" dies "Schnürer Comfort" und statt.
Was mache ich falsch, bzw. wie kann ich den Fehler korrigieren?
Hier ein auszug aus dem Code:
$row = 1; // Anzahl der Arrays
$handle = fopen ("transfer/Exportwebshop.csv","r"); // Datei zum Lesen öffnen
// Die erste Zeile mit den Spaltennamen auslesen
$data = fgetcsv ($handle, 100000, ";");
if(is_array($data)) {
foreach($data AS $cellNr => $cellName) {
$cellNamesArray[$cellNr] = $cellName;
}
}
$return=false;
while ( ($data = fgetcsv ($handle, 100000, ";")) !== FALSE ) { // Daten werden aus der Datei
$num = count ($data); // Felder im Array $data
//var_dump('row: '.$row);
//var_dump('offset: '.$offset);
//var_dump('step: '.$step);
if ($row <= $offset) {
$row++; // Anzahl der Arrays wird
continue;
}
if ($row > $offset+$step) {
$count = 0;
for ($c=0; $c < $num; $c++) { // FOR-Schleife, um Felder des Arrays auszugeben
$feld[$cellNamesArray[$c]] = $data[$c];
$count++;
}
if ( $feld['shop_nr'] == 1) {
self::$row = $row;
$return=true;
break;
}
}
$row++; // Anzahl der Arrays wird
$count = 0;
for ($c=0; $c < $num; $c++) { // FOR-Schleife, um Felder des Arrays auszugeben
$feld[$cellNamesArray[$c]] = $data[$c];
$count++;
}
var_dump($feld);
exit;
}
Vielen Dank,
Grüße
Ottscho
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 180036
Url: https://administrator.de/contentid/180036
Ausgedruckt am: 25.11.2024 um 15:11 Uhr
2 Kommentare
Neuester Kommentar