kostenloser Webspace werbefrei: lima-city


Ersatz für ereg_replace (deprecated)

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    t****o

    *ring, ring* :wave:
    Ich hab ein Problem mit PHP, und zwar mit ereg_replace. So sieht das ganze aus: (teile davon)
    ereg_replace('#test#', 'test', $aendern)

    PHP gibt mir aber den Fehler aus
    Deprecated: Function ereg_replace() is deprecated


    Wie kann ich das lösen?

    Beitrag zuletzt geändert: 19.11.2009 19:32:31 von telelo
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. r*s

    Indem du die Funktion nicht benutzt ;-)
    Diese wird anscheinend von dem Server nicht erlaubt, aber schau noch mal in die phpinfo...
  4. Autor dieses Themas

    t****o

    rms schrieb: Indem du die Funktion nicht benutzt ;-) Diese wird anscheinend von dem Server nicht erlaubt, aber schau noch mal in die phpinfo...

    Danke das ist einfach unnötig. Gulden gibts durch anständige Beiträge.

    Das Problem kann man lösen, das hab ich schon herrausgefunden. Es soll wohl durch PHP 5 wieder anders geworden sein.
    Vielleicht hat ja einer ne Lösung
  5. preg_replace() würde ich sagen ;)

    Beitrag zuletzt geändert: 19.11.2009 19:37:39 von nikic
  6. r*s

    Sry, ja man kann es anders lösen, aber auch du könntest google verwenden ;-)
    preg_replace() das ist die neue Funktion ;-)

    Quelle:

    http://www.sphider.eu/forum/read.php?2,6431

    Sry nikic war schneller...kann gelöscht werden, bevor ich hier weiter bezichtigt werde irgendwie ein Quatsch zu schreiben um an Gulden zu kommen...

    Beitrag zuletzt geändert: 19.11.2009 19:39:09 von rms
  7. Autor dieses Themas

    t****o

    Mit preg_replace kommt der Fehler nichtmehr, stattdessen funktionierts nicht mehr so wie es soll. Ich zeig euch jetzt mal das ganze:
    $parse = array(
    	'#test1#' => 'test1',
            '#test2#' => 'test2'
    );
    
    foreach($parse as $k => $v) {
    
    	$document = preg_replace($k, $v, $document);
    
    }

    Er ersetzt es richtig, allerdings werden die #-Zeichen nicht ersetzt, d.h. er zeigt trotzdem #test1# an.
  8. Das liegt daran, dass preg_* perl-Syntax folgt (das ist die coole regexp syntax), daher wird ein delimiter benötigt. Deine "#"s werden so interpretiert. Versuch mal "/#bla#/".

    Zudem ist das sinnlos, was du tust. Nutze str_replace(), das sollte schneller gehen.

    Oder eleganter:
    $parse = array(
    	'#test1#' => 'test1',
            '#test2#' => 'test2'
    );
    
    str_replace(array_keys($parse), $parse, $document);


    (Du denkst nicht immer noch daran, ein CMS zu schreiben?)
  9. Autor dieses Themas

    t****o

    Ah danke nikic, funktioniert perfekt.
    nikic schrieb: ...
    (Du denkst nicht immer noch daran, ein CMS zu schreiben?)

    :tongue:
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!