phpbar.de logo

Mailinglisten-Archive

[php] ereg_replace newline in ", "

[php] ereg_replace newline in ", "

Ulf Wendel ulf_(at)_redsys.de
Wed, 16 Feb 2000 20:09:09 +0000


Achim Gosse wrote:
> $text = ereg_replace("\n", ", ", $text)
> 
> klappt leider nicht, die newlines bleiben drin.

Newlines bestehen - wie bereits von jemandem beantwortet - je nach
System nicht nur aus einem \n. Gerade die bunte Welt nimmt gerne noch
ein \r hinzu. 

\n und \r sind Steuerzeichen für den Drucker. \n ist für den
Zeilenvorschub verantwortlich, während \r für den Wagenrücklauf sorgt.
In manch einem System benötigt man also die Kennung \n\r für einen
korrekten "Zeilenumbruch", während andere sich mit \n begnügen. 

Darauf bis Du reingefallen.

Davon abgesehen solltest Du nicht ereg_replace() benutzen, wenn die
Aufgabe auch mit den "normalen" str* Funtionen bewältigt werden kann.
Die ereg* und preg* Funktionen können mit regulären Ausdrücken arbeiten.
Sie sind in der Lage komplexe Suchmuster zu verarbeiten, die intern in
Automaten zur Lösung eines Suchproblems übersetzt werden. Solche
Automaten sind zwar prinzipiell schnell, weil sie spezialisiert sind,
aber ihr Aufbau ist sehr zeitaufwendig. Werden die ereg* und preg*
Funktionen ohne RegExps aufgerufen kann man von verlorener Liebesmüh
sprechen. 

Deutlich effektiver sind die brute-force str* Funktionen. Sie denken
sich nicht ein komplexes Verfahren aus, sondern scannen mit maximal
möglicher Geschwindigkeit Speicherzellen. 

Ulf


php::bar PHP Wiki   -   Listenarchive