www.mikrocontroller.net

Forum: PC-Programmierung Probleme mit explode() -- php


Autor: php (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe eine Datei die ich einlese. In dieser Datei stehen Pro zeile 3 
Informationen. und zwar in der Form:


             Information_1            Info_2       Info_3


kann ich die Informationen trotzdem mit explode auslesen? Das Problem 
ist ja dass ich am Anfang viele Leerzeichen hab. Vor Info_2 eine andere 
Anzahl (die ab Zeile 10 wieder eine andere ist) und vor Info_3 ist die 
Anzahl nochmal anders.

Oder gibt es eine andere Funktion?

Autor: Blä (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du die PHP-Doku zu explode() gelesen??

Es würde mit explode nur funktionieren, wenn du zwischen deinen Infos 
immer den gleichen Delimiter-String hast.

Vesuch dein Glück lieber in einem PHP-Forum...

Autor: Thomas Bremer (Firma: Druckerei Beste) (virtupic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
explode nimmt nur einzelne Trennzeichen. Du kannst die Zeilen mit 
regulären Ausdrücken zerlegen. So was wie

preg_match("([^ ]*)\s+([^ ]*)\s+([^ ]*)", $line, $match);
$field1 = $match[1];
$field2 = $match[2];
$field3 = $match[3];

holt dir die drei Werte raus.

virtuPIC

Autor: Julian O. (juliano)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Es würde mit explode nur funktionieren, wenn du zwischen deinen Infos
>immer den gleichen Delimiter-String hast.

Es sind doch immer gleiche Delimiter vorhanden: Leerzeichen. Wenn man 
als Delimiter-String das Leerzeichen setzt und nur die Array-Elemente 
übernimmt, die nicht leer sind bleiben genau 3 Textelemente über.
$test = '       text1      text2    text3';
$arr1 = explode(' ',$test);

foreach($arr1 as $value)
  {
  if(!empty($value)) $arr2[] = $value;
  }

Autor: Thomas Bremer (Firma: Druckerei Beste) (virtupic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Setzt natürlich voraus, dass keines der Felder leer ist.

virtuPIC

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... und natürlich dürfen in der Information keine Leerzeichen vorkommen.

Bist du dir überhaupt sicher, dass die Infos durch Leerzeichen getrennt 
sind und nicht durch Tabulatorzeichen o.ä.?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.