florian: Leerzeichen entfernen

Hallo!

Ich habe eine Frage und zwar möchte ich erst den Inhalt einer txt-Datei in eine Variable einlesen lassen (mit "$string=file_get_contents("text.txt");") und dann aus der Variable alle Leerzeichen rauslöschen...

Nun geht das doch normalerweise so: "$string=str_replace(' ','',$string);".
Aber irgendwie macht er das nicht... Gibt es für Leerzeichen irgendwie einen Extrabefehl? Oder muss man die Leerzeichen irgendwie umschreiben? Vor den Leerzeichen kommen in der txt-Datei verschiedene Zeichen, wie z.B. "]" oder so... Muss mann das hierbei beachten?

Grüße, Florian

  1. Guten Tag,

    Aber irgendwie macht er das nicht... Gibt es für Leerzeichen irgendwie
    einen Extrabefehl?

    Bist du dir sicher, dass nur einfache Leerzeichen enthalten sind? Was ist mit Zeilenumbrüchen?

    Gruß
    Christoph Jeschke

    --
    Zend Certified Engineer
    1. Bist du dir sicher, dass nur einfache Leerzeichen enthalten sind? Was ist mit Zeilenumbrüchen?

      oder andere leerzeichen?

      ' ' (U+0020) und ' ' (U+00A0) sind z.B. nicht identisch, sehen nur auf den ersten blick gleich aus

      1. OK, das war genau der Fehler! Aus irgendeinem Grund gab es in der Datei "andere" Leerzeichen, als die Space-Taste, also hab' ich die einfach kopiert und in die PHP-Datei eingefügt.
        Jetzt funktioniert es!

        Danke für die schnelle Hilfe! :-)

  2. Ich weiß zwar nicht sicher wie umfassend das ist aber \s als regulärer Suchausdruck sollte allemal *besser sein als ' '.

    *Falls Du jeglichen Whitespace loswerden willst.

  3. Moin

    soweit schon richtig. Aber denke an die Whitespaces vor und hinter einem String.

    versuchs mal mit $string=str_replace(' ','',trim($string))

    Dokumentation siehe hier

    Gruß Bobby

    --
    -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
    -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
    ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
    1. Also irgendwie schaffe ich es jetzt, dass - mit trim - das erste Leerzeichen gelöscht wird.
      Komischerweise wird auch dann dass dritte gelöscht, aber alle anderen bleiben.