ereg_replace braucht zu lange

Grobian

Grünschnabel
Hallo!

Ich will bei einem Textstring mehrfache Leerzeichen.
Dise mache ich momentan so:

PHP:
$text = ereg_replace ('[ ]+', ' ', $text); // Mehrfache Leerzeichen killen

Mein Problem ist nur, dass die Ausführung bei einem sehr großen Textstring bis zu 70 Sekunden dauert.

Im Vergleich dazu braucht ein

PHP:
$text = str_replace("\r", "", $text);

beim selben String nur 0.16 Sekunden.

Gibts noch eine Alternative zu ereg_replace ?
 
Ich denke, es liegt an deinem regulären Ausdruck, der einfach etwas gierig ist.

PHP:
$text = preg_replace('/\s{2,}/sm', ' ',$text, PREG_SET_ORDER);

Versuch es einmal so.

Der Schnipsel ist geklaut von phpfuncs.org.
 
Befehl klappt leider nicht. Mehrfache Leerzeichen sind immernoch da.
Ausführung des Befehls braucht 0.20 Sekunden. Geschwindigkeit wäre also OK
 
also ich mach es auch über str_replace.. bsp.
PHP:
function delSpace($foo)
        {
                $foo = str_replace('/\r\n|\r|\n/', ' ', $foo);
                $foo = str_replace('\'', ' ', $foo);
                $foo = str_replace(" ", ' ', $foo);
                $foo = strip_tags($foo);
                $foo = htmlentities($foo);
                $foo = addslashes($foo);
                return $foo;
        }
mfg Spikaner
 
Aber wie willst du bitte die 4 Leerzeichen hier rausbekommen?

HTML:
Dies ist    ein Test

Da du ja EIN Leerzeichen mit EINEM anderen ersetzt, wird bei deiner Funktion am Ende wieder das gleiche da stehen. Oder kommt das durch die HTML Entities?
 
Zuletzt bearbeitet:
Zurück