String mit php Trennen unterschiedliche abstände

...komplette Frage anzeigen

3 Antworten

Du kannst es ja dann bei jedem Leerzeichen trennen. Danach vielleicht noch mit Trim die übrigen Leerzeichen wegmachen. Versteh das Problem nicht ganz.

ich wüsste keine Funktion oder möglichkeit dafür.

Allerdings könntest du die Zeile in einen String speichern und mit

explode(" ",$string);

das ganze in einen temporären Array speichern und dann mit

$array = array();
$i = 0;
while($i<count($tmpArray)){
    if($tmpArray[$i] != " "){
        $array[] = $tmpArray[$i];
    }
}

damit (solltest) du jedes einzelne Wort in den array $array speichern können -> könntest du auch mehrdimensional machen, umso die ganze file in einen array zu stecken ;-)

spiel doch einfach mal mit meinem Denkansatz, vielleicht findest du ja eine elegantere Lösung

gruß

<?php
  $str = 'Das     ist ein          Test';
  $zeichen = preg_split('/ {1,}/', $str);
  print_r($zeichen);
?>

Ausgabe:
Array ( [0] => Das [1] => ist [2] => ein [3] => Test )

preg_split('/ +/', $str)

geht natürlich auch^^

1
@myjack

ich find dein code schön, schön kurz und einfach zu lesen :)

1
@cat64k

Stimmt, bei aller Konzentration auf Performance und Sparsamkeit muss auch mal etwas Platz für Ästhetik sein :-)

0

Funktioniert zwar, ist aber im Vergleich zu Methoden wie explode deutlich langsamer und da wir hier keine komplexe Zeichenkette haben die identifiziert werden muss, tuts explode genauso.

1
@apachy

Jeder sagt, dass diese Funktion deutlich langsamer ist. Aber hat das mal jemand ausprobiert?

Habe gerade mal einen String mit etwa 1,5 Millionen Zeichen erstellt (natürlich auch mit jeder Menge Leerzeichen). Sind so etwa 1,5 Megabyte reiner Text.

Ergebnis:

Dauer preg_split: 0.1059 Sek.
Dauer explode+trim: 0.0238 Sek.

Bei EXTREMEN Datenmengen kann man einen Unterschied in der Laufzeit feststellen. Bei 0815-Datenverarbeitung muss man da schon noch ein paar Nachkommastellen mehr anhängen. Ist also ziemlich Wurscht, was man da benutzt, wenn man nicht gerade die halbe Welt auf seinem Server zu Besuch hat.

0

Was möchtest Du wissen?