22 Stimmen

PHP: Letztes Trennzeichen einer CSV-Datei in jeder Zeile löschen

Frage von Gast | 13.10.2020 um 12:07

Ich habe eine CSV-Datei mit dem Trennzeichen ';'.

Artikelnummer1;Beschreibung1;Bestand1;
Artikelnummer2;Beschreibung2;Bestand2;
...

Wie lösche ich das letzte ';' ?

Eine Spaltenüberschrift ist nicht vorhanden.

Schlußendlich möchte ich die Datei in eine SQL-Datenbank einlesen und die Bestände aktualisieren lassen.

Ich habe es schon hinbekommen, dass ich wenigstens eine Spaltenüberschrift im Array habe, aber eben auch in jeder Zeile ein leeres Feld (leere Spalte) am Zeilenende.

Mit substr komme ich im Array nicht weiter. Mit chop auch nicht.

Vielen Dank

AntwortenPositivNegativDatumStimmen
11 Stimme

Wie ließt du die CSV-Datei denn ein? Wenn du die Datei zeilenweise einließt, kannst du rtrim oder substr verwenden. Zum Beispiel so:

for ($i = 0; $i < count($zeilen); $i++) {
   $zeilen[$i] = trim($zeilen[$i]);  // optional

   $zeilen[$i] = rtrim($zeilen[$i], ";");
   // oder
   $zeilen[$i] = substr($zeilen[$i], 0, -1);
}

Dabei ist $zeilen ein Array, in dem die Zeilen deiner CSV-Datei stehen. Danach kannst du weiter mit explode(';', $zeilen[$i]) arbeiten, um die einzelnen Felder zu erhalten.

Die erste Zeile mit dem trim habe ich eingefügt für den Fall, dass noch Leerzeichen hinter dem ; vorhanden sind.
13.10.2020 um 21:53

AntwortenPositiv Negativ
11 Stimme

Hi... eine andere Möglichkeit ist, wenn das letzte Zeichen bekannt ist, folgende:

rtrim( $string , ';');

Wenn das letzte Zeichen ein Semikolon zu viel ist.
18.08.2021 um 10:44

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

PHP: Datei Download Skript

Tutorial | 0 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.