Ergebnis 1 bis 10 von 10

Thema: Rebellion der Zeilenumbrüche >_<

  1. #1

    Rebellion der Zeilenumbrüche >_<

    Moin,
    ein recht simples Problem im Grunde, aber ich werd einfach nicht schlau daraus, woran's liegt >_<
    Also: Ich habe eine Datei (sozusagen eine Konfigurationsdatei). Diese lese ich mir mittels file_get_contents ein und habe sie nun in der $tmp. Nun will ich aus der Datei alle Leerzeichen und Zeilenumbrüche entfernen. Leerzeichen sind kein Problem:
    PHP-Code:
    $tmp str_replace (' '''$tmp); 
    Funktioniert wunderbar. Nun kommen die Zeilenumbrüche. Erster Versuch, wie ich's normalerweise mach, nämlich ganz einfach:
    PHP-Code:
    $tmp str_replace ('
    '
    ''$tmp); 
    Funktioniert nicht - Die Zeilenumbrüche sind noch da. Gut, schau ich eben nach, wie das mit der verschiedenen Zeilenumbruchdarstellung war ... also neuer Versuch:
    PHP-Code:
    $tmp str_replace ('
    '
    ''$tmp);
    $tmp str_replace ('\n'''$tmp);
    $tmp str_replace ('\r\n'''$tmp); 
    Aber nichts: Die Zeilenumbrüche sind immer noch da (ich lasse den String dann immer mal ausgeben).
    Mal komplizierter:
    PHP-Code:
    $tmp str_replace ('
    '
    ''$tmp);
    $tmp str_replace ('\n'''$tmp);
    $tmp str_replace ('\r\n'''$tmp);
    $tmp preg_replace ('#(.*)\n(.*)#Uis''\\1\\2'$tmp); # Und das auch noch mit den obrigen Methoden ... 
    Wieder nichts >_<

    Die Datei enthält im Grunde stinknormale Zeilenumbrüche - Das tut sie auch, nachdem ich sie mir per file_get_contents hole, und auch, nachdem ich mit preg_replace (anhand von XML-Tags) einen speziellen Teil heraushole. Immer stinknormale Zeilenumbrüche - Aber sie wollen nicht weg >__>
    Ich schau also im PHP-Manual nach - Das einzig brauchbare, das ich finde - php_strip_whitespace - ist erst ab PHP5 verfügbar >_<

    Die rebellierenden Dateien wären diese und diese hier, - Da hole ich den default-Teil raus. Wiegesagt, wenn ich mir nur den ausgeben lasse, sieht er genau so aus, wie in der Datei, nur wollen eben nach dem anschließenden Ersetzungsmarathon die Zeilenumbrüche nicht weg ;__;
    Kann mir wer sagen, wieso? ;__;

  2. #2
    Dumme idee evtl.

    Verusch einfach mal
    PHP-Code:
    $tmp str_replace ("\n"""$tmp);
    $tmp str_replace ("\r\n"""$tmp); 
    evtl. ist es mit dem \n in ' ' sowie es mit Variablen ist

    Edit:

    evtl. hilft das noch

    http://de2.php.net/manual/de/function.rtrim.php

  3. #3
    Zitat Zitat von dadie
    Dumme idee evtl.

    Verusch einfach mal
    PHP-Code:
    $tmp str_replace ("\n"""$tmp);
    $tmp str_replace ("\r\n"""$tmp); 
    evtl. ist es mit dem \n in ' ' sowie es mit Variablen ist
    Hmm ... ne, funktioniert genau so wenig.

    Zitat Zitat von dadie
    Ne ... entfernt die Whitespaces eben nur am Stringende (bzw. ltrim am Anfang und trim an Anfang und Ende), das bringt nicht so wirklich viel ...

  4. #4
    Versuchs mal damit:
    PHP-Code:
    ...
    $zeilen file("datei");
    $zeilen array_map("trim"$zeilen);
    $content implode(""$zeilen);
    ... 
    Ist ungetestet, sollte aber klappen...

    EDIT: Hups... array_map()...

    Geändert von Manni (03.07.2005 um 20:13 Uhr)

  5. #5
    Hm, tatsächlich. Abgesehen davon, dass es array_map und nicht map heißt. Aber egal, vielen Dank

  6. #6
    Die Version von dadie müsste auch gehen, wenn man die beiden Zeilen vertauscht. Sonst bleibt bei einem Windows-Zeilenumbruch immer ein \r am Ende der Zeile stehen. Noch idealer wäre allerdings folgende Lösung:
    PHP-Code:
    $tmp str_replace("\r"""$tmp);
    $tmp str_replace("\n"""$tmp); 
    Damit werden alle Zeilenumbrucharten entfernt. (Sollte zumindest so sein)

  7. #7
    Man kann mit regulären Ausdrücken sehr einfach jeglichen Whitespace aus einem String entfernen:
    Code:
    $bla = preg_replace("/\s/", "", $bla);
    Ja, das war's schon. Regexps sind toll, oder?

  8. #8
    Zitat Zitat von Jesus_666
    ...Ja, das war's schon. Regexps sind toll, oder?


    BTW: Wo bleibt eigentlich das RegExp-Tutorial, das du uns mal schreiben wolltest?


    EDIT: Oi, verpennt. Man dankt recht herzlich.

  9. #9
    Zitat Zitat von Chocwise
    BTW: Wo bleibt eigentlich das RegExp-Tutorial, das du uns mal schreiben wolltest?
    Das bleibt im Programmierforum, denke ich mal. Hier.

    freundliche Grüße, Rolus

  10. #10
    Schau dir das mal an.

    EDIT: Mist

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •