• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Split in php

Haerti

New member
Ich hätte mal wieder ein Problem ;)

ich versuche mit PHP einen Text zu splitten, ich habe bei einer google suche folgendes Beispiel gefunden:

PHP:
$datum = "04/30/1973";
list ($monat, $tag, $jahr) = split('[/.-]', $datum);
echo "Monat: $monat; Tag: $tag; Jahr: $jahr<br />\n"

Bei kleineren Texten und festgelegten Werten funktioniert das ganz gut, aber sobald ich eine Textdatei auslese und diese beim "/" spliten will gibt er mir nur den ersten Teil vor dem / aus.

Liegt das daran das der Text zulang ist oder hat das eine andere Ursache ?
PHP:
  $Filetext = "test.txt";
  $Textdatei = fopen($Filetext, "a+");
  $text = fgets($Textdatei);
  fclose($Textdatei);
  list ($vortext, $haupttext) = split('[/]', $text);
 echo "Vortext: $vortext; Haupttext: $haupttext<br />\n"
 
Zuletzt bearbeitet:
Erstmal hast du in deinem Code ganz am Ende der echo-Ausgabe ein (überaus wichtiges!) Semikolon vergessen - fehlt auch schon in deinem Bsp.!
Dann - steht der Text in deiner Datei in einer einzigen Zeile oder sind's mehrere bzw. hast du vor, mehrere zu benutzen?
Hatte die Tage ein ähnlich geartetes Problem, wo ich Texte zeilenweise aus einer externen Datei auslesen und weiterverarbeiten mußte - dabei hab ich (m. frdl. Hilfe!) festgestellt, dass es in Dateien mit reinem Text (sog. plain text) auch "unsichtbare" Steuerzeichen gibt. Jedesmal, wenn man per ENTER in eine neue Zeile wechselt, wird solch ein Zeichen (Zeilenvorschub) eingefügt. Abhilfe dafür schafft trim().
Bei dir könnte evtl. folgender
PHP:
$Filetext = "test.txt";
$Textdatei = fopen($Filetext, "a+");
$text = fgets($Textdatei);
fclose($Textdatei);
list ($vortext, $haupttext) = split('/', trim($text));
echo "Vortext: $vortext; Haupttext: $haupttext<br />\n";
helfen.
Übrigens, brauchst du unbedingt reguläre Ausdrücke?
Anderenfalls solltest du statt split() lieber explode() benutzen, ist schneller - siehe hier unter Anmerkungen.
Good luck...
 
Gerne... und wenn du noch 'n gutes Werk tun willst, dann bewerte doch meinen Post - danke!
Ansonsten, alles Gute...
 
Zurück
Oben