775 Stimmen

Wie entferne ich alle Leerzeichen aus einem String in PHP?

Wie kann ich Streifen / entfernen todo Räume eines String in PHP?

Tengo un String wie $string = "this is my string";

Die Ausgabe sollte sein "thisismystring"

Wie kann ich das tun?

0 Stimmen

2 Stimmen

Technisch gesehen ist dies eine etwas andere Frage als die Frage nach dem Duplikat. Manchmal möchten Sie vielleicht Leerzeichen ohne Tabulatoren einfügen.

1 Stimmen

Hier ist der kürzeste Weg, dies zu tun, für den Fall, dass Sie jemals bei Code Golf gewinnen müssen: strtr($string,[' '=>'']);

1735voto

Mark Byers Punkte 761508

Meinen Sie nur Leerzeichen oder alle Leerzeichen?

Für bloße Leerzeichen, verwenden Sie str_replace :

$string = str_replace(' ', '', $string);

Für alle Leerzeichen (einschließlich Tabulatoren und Zeilenenden), verwenden Sie preg_replace :

$string = preg_replace('/\s+/', '', $string);

(Aus aquí ).

51 Stimmen

1. Sie brauchen nicht die + . $string = preg_replace('/\s/', '', $string); sollte gut funktionieren. Das Einzige, was bei mir nicht funktioniert, sind nicht umgebrochene Leerzeichen. Ich musste dies verwenden: $string = preg_replace('~\x{00a0}~','',$string); um sie zu entfernen. Danke an diese Stackoverflow-Antwort: stackoverflow.com/a/12838189/631764

47 Stimmen

Frage eines Neulings aus Interesse: Was ist der Unterschied zwischen space y whitespace ? Ist es nicht das Gleiche?

57 Stimmen

@EchtEinfachTV Leerzeichen ist das reguläre Leerzeichen zwischen Wörtern, Leerzeichen ist jede Art von Leerzeichen im Text: reguläres Leerzeichen, Zeilenumbruch, Tabulator, etc.

70voto

Arkaaito Punkte 7249

Wenn Sie alle Leerzeichen entfernen möchten:

$str = preg_replace('/\s+/', '', $str);

Siehe das 5. Beispiel auf die preg_replace-Dokumentation . (Anmerkung: Ich habe das ursprünglich hierher kopiert.)

Edit: Kommentatoren wiesen darauf hin, und das ist richtig, dass str_replace ist besser als preg_replace wenn Sie wirklich nur das Leerzeichen entfernen wollen. Der Grund für die Verwendung von preg_replace wäre es, alle Leerzeichen (einschließlich Tabulatoren usw.) zu entfernen.

8 Stimmen

"Wenn Sie keine ausgefallenen Ersetzungsregeln (wie reguläre Ausdrücke) benötigen, sollten Sie immer diese Funktion verwenden [ str_replace ] anstelle von ereg_replace() または preg_replace() ."

2 Stimmen

Ich würde nicht vorschlagen, reguläre Ausdrücke für die einfache Entfernung von Leerzeichen zu verwenden. str_replace für nur Leerzeichen, preg_replace für alle Whitespace.

1 Stimmen

@Johannes & MasterPeter: Einverstanden, aber der OP hat einen Kommentar zu einer anderen Antwort hinterlassen, dass er den weißen Raum entfernen möchte.

52voto

codaddict Punkte 426877

Wenn Sie wissen, dass der Leerraum nur auf Leerzeichen zurückzuführen ist, können Sie ihn verwenden:

$string = str_replace(' ','',$string); 

Aber wenn es aus Platzgründen sein könnte, können Sie Tab... verwenden:

$string = preg_replace('/\s+/','',$string);

1 Stimmen

Dies sieht aus wie ein Duplikat von eine frühere Antwort

18voto

David Heggie Punkte 2852

str_replace wird den Trick folgendermaßen ausführen

$new_str = str_replace(' ', '', $old_str);

0 Stimmen

Dies sieht aus wie ein Duplikat von eine frühere Antwort

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X