PHP analysiert die erste Zeile der CSV-Datei, um zu bestimmen, wo Daten in nachfolgenden Zeilen gespeichert werden sollePhp

PHP-Programmierer chatten hier
Guest
 PHP analysiert die erste Zeile der CSV-Datei, um zu bestimmen, wo Daten in nachfolgenden Zeilen gespeichert werden solle

Post by Guest »

Ich versuche, Daten aus Tabellenkalkulationen zu extrahieren, die uns ein Kunde geschickt hat, damit wir diese Daten in unserem System speichern können. Leider sind die Tabellenkalkulationen nicht konsistent, es wurden Spalten hinzugefügt und entfernt, was es schwierig machte, ein einziges Skript zum Extrahieren und Speichern der Daten zu erstellen. Positiv ist, dass sie für jede Spalte in der Tabelle dieselben Titel verwenden.
Mein Plan bestand darin, die erste Zeile mit ihren Titeln zu verarbeiten und die Spaltenanzahl mit der Spalte unserer Datenbank zu verknüpfen Name. Ich speichere es derzeit als zugehöriges Array. Im folgenden Codebeispiel wurden der Kürze halber einige case-Werte entfernt. Das assoziative Array hat die Spaltenanzahl als Schlüssel, den Namen als Wert.

Code: Select all

if (($handle = fopen($guestData, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 10000, ",")) !== FALSE) {
$num = count($data);
$myArray = array();
for ($c=0; $c < $num; $c++) {
switch ($data[$c]) {
case 'Customer ID':
$myArray += [$c => "operatorBookingID"];
break;
case 'Customer Name':
$myArray += [$c => "guestName"];
break;
case 'Country':
$myArray += [$c => "nationality"];
break;
case 'Phone number':
$myArray += [$c => "phone"];
break;
'
'
'
}
}
}
Mein erstes Problem ist, dass der erste Fall aus irgendeinem Grund nicht registriert und nicht zum Array hinzugefügt wird, obwohl er die richtige Zeichenfolge hat. Die Kundennummer ist immer die erste Spalte der Tabellen, die wir erhalten. Ich schließe mit einem Array ab, das so beginnt:

Code: Select all

 Array ( [3] => guestName [4] => nationality [5] => phone etc etc )
Die Tabelle besteht aus einfachen, durch Kommas getrennten Dateien mit doppelten Anführungszeichen um alle Daten, die Kommas enthalten.
bearbeitet
Das vorherige Fehlerproblem wurde dank des zweiten Kommentars über das zu frühe Schließen des Streams durch das Skript behoben.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post