php und csv Spalten
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktivieren
ansatz
buchstabe
code
datei
element
fehlermeldung
header
http
leute
parameter
problem
quellcode
spalte
testen
testphase
url
zahl
zeile
zusammenstellen
-
Hallo Leute,
ich habe ein Problem mit CSV Datein in PHP.
Ich habe in einer CSV Datei verschiedene Spalten mit Werten. Diese Werte können Zahlen und Buchstaben sein. Allerdings ist es mir derzeit nur möglich Zeilen auszulesen und keine Zahlen.
Ich habe nun 2 Probleme
a) er ignoriert alle Zahlen
b) er ließt Zeilenweise und nicht (Ich komme mit array_column nicht zurecht.
Hier mein Ansatz:
<?php function csv_to_array($filename='', $delimiter=',') { if(!file_exists($filename) || !is_readable($filename)) return FALSE; $header = NULL; $data = array_column(); if (($handle = fopen($filename, 'r')) !== FALSE) { while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) { if(!$header) $header = $row; else $data[] = array_combine($header, $row); } fclose($handle); } return $data; } print_r(csv_to_array('../db/smd_week1.csv')); ?>
Ordentlich ist dieser hier zu sehen: http://paste42.de/10820/CSV-Datentyp&linenr
Die CSV Datei befindet sich hier: http://skopp-jonathan.lima-city.de/mail/csv.png
Die Ausgabe nach dem obrigen Quellcode ist hier einzusehen: http://skopp-jonathan.lima-city.de/mail/page/test.php
Ich hoffe ihr könnt mir helfen.
Mfg.:
Barthyr
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Jetzt mal blöd: Gib mal der 1. Spalte nen Wert.
-
Kannst du es mal mit einer kleineren CSV Datei testen? Mir scheint, als ob er nicht alle Zeilen einliest. Mal geht es bis V301, ein andermal bis V337.
-
Was soll denn hier
$data = array_column();
passierern?
Da müsste eigentlich so etwas wie
array_column() expects at least 2 parameters, 0 given in...
kommen. Du solltest auf jeden Fall mal die PHP-Fehlermeldungen für die Testphase aktivieren. Falls bei
$data[] = array_combine($header, $row);
sowas wie
Warning: array_combine(): Both parameters should have an equal number of elements in
kommt, dann weißt du, dass die CSV nicht sauber ist.
Auch verstehe ich
$delimiter=','
nicht. Ich finde in deiner CSV
"1029";0,032;0,04;0,023;usw;usw;
also
$delimiter=';'
Also noch mal kurz:
1. Fehlermeldungen aktivieren
2. übersichtliche Testdatei zusammenstellen
3. Code bereinigen
Beitrag zuletzt geändert: 11.7.2016 9:25:15 von mein-wunschname -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage