Interessehalber : eregi_replace

Subwoover

Erfahrenes Mitglied
Hey hab mal eine frage bezüglich eregi_replace!

Ich arbeite ja schon länger damit, im zusammenhang mit badwords u.a.
Manchmal ists jedoch einfach notwendig statt eregi_replace str_replace zu verwenden, warum?

PHP:
$beitrag = eregi_replace("\\[ list","[ list",$beitrag);
$beitrag = eregi_replace("\\[ /list","[ /list",$beitrag);
$beitrag = str_replace("[ list]","<ul type=square>",$beitrag);
$beitrag = str_replace("[ /list]","</ul>",$beitrag);

würde ich die 3te und 4te zeile zB auch durch eregi_replace umwandeln lassen, würde sich mein scipt nach 30 sekunden mit ner zeitüberschreitung verabschieden, warum?
wo is der gravierende unterschied?
 
Zuletzt bearbeitet:
Hallo!

Also ich habs getestet und bei mir funktionierts einwandfrei mit eregi_replace.

Welche PHP-Version benutzt Du denn?
Ich hätte da nämlich einen Anhaltspunkt. Da Du ja ein </ul> mit einem </ul> ersetzt, könntest Du einen Art Endloschleife produzieren. Vielleicht ist dieser Bug in meiner PHP-Version schon beseitigt, aber in Deiner noch nicht.

Ich arbeite mit PHP V4.3.3.

MfG
Mike
 
Die eregi-Funktionen sind Allgemein sehr langsam.
Nimm lieber die PCRE (Perl Compatible Regular Expressions) Funktionen (preg_replace, preg_match, usw.)
 
PHP Version 4.3.1

Hm ja aber erreich ich das selbe mit preg_match oder preg_replace?

hmmm das mit der endlosschleife kann nicht sein---> das board hier ersetzt [ list ] (ohne abstand) automatisch..
 
Zuletzt bearbeitet:
Was soll überhaupt die Zeile bringen:
PHP:
$beitrag = eregi_replace("\[list","[list",$beitrag);
?
Willst du list-BBCodes bearbeiten?
Dann versuchs mal so:
Code:
function makeList( $inp_string ) {
    $out_string = "";
    $inp_string = explode("[*]", $inp_string);
    unset($inp_string[0]);
    foreach ($inp_string as $istring) {
        $out_string .= "<li>".$istring."</li>";
    }

    return  "<ul type=\"square\">".$out_string."</ul>";
}

$beitrag = preg_replace("/\[list\](.*)\[\/list\]/eisU", "makeList(\"$1\")", $beitrag);
 
Zuletzt bearbeitet von einem Moderator:
Zurück