Ankündigung

Einklappen
Keine Ankündigung bisher.

preg_replace deprecated use callback

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • preg_replace deprecated use callback

    Liebes Forum

    Ich sollte ein Gästebuch welches ich nicht selbst geschrieben auf die aktuelle PHP Version migrieren. Folgende beiden Zeilen sollte ich durch preg_replace_callback ersetzen. Weiss aber nicht genau wie ich das machen soll...

    Hier die alte Syntax und deren Fehlermeldung:
    Code:
    $bbcode = preg_replace('/\[url\](.*?)\[\/url\]/e', "\$this->url_syntax('\\1','')", $bbcode);

    Code:
    $bbcode = preg_replace('/\[url(.*?)\](.*?)\[\/url\]/e', "\$this->url_syntax('\\1','\\2')",$bbcode);
    Fehlermeldung:
    Code:
    \Error\ErrorHandler::handleError(819 2, "preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead", "/html/typo3conf/ext/aahbook/pi1/class.tx_aahbook_pi1.php", 123, array)
    12 preg_replace("/\[url\](.*?)\[\/url\]/e", "$this->url_syntax('\1','')", "Weiterhin viel Erfolg!")
    siehe: http://www.philipp-tischendorf.de/index.php?id=13




    Habe bei der ersten Zeile mal folgendes versucht:

    Versuch1:
    Code:
    $bbcode = preg_replace('/\[url\](.*?)\[\/url\]/', function($m1){ return "\$this->url_syntax('$m1[1]','')"; }, $bbcode);
    Versuch2:
    Code:
    $bbcode = preg_replace('/\[url\](.*?)\[\/url\]/', function(){ return "\$this->url_syntax('\\1','')"; }, $bbcode);
    Besten Dank für eure Hilfe.


  • #2
    also,

    code bitte mit bb-code formatieren (code tags).

    typo3 fragen sind dort im forum recht gut aufgehoben, sonst schau mal die docu an.
    debugausgabemn helfen übrigens bei deinen versuchen.

    Kommentar


    • #3
      Ich hab den Fehler herausbekommen. Hier die richtige Lösung:

      Code:
      $bbcode = preg_replace_callback('/\[url\](.*?)\[\/url\]/', function($m) { return "\$this->url_syntax($m[1],'')"; }, $bbcode);
      Trotzdem besten Dank!

      Kommentar


      • #4
        Wohl im Callback eher ohne die Anführungszeichen um den Methodenaufruf, oder?

        Edit: Also, that. ↓

        Kommentar


        • #5
          Ähm... was ist denn $this innerhalb der anonymen Callbackfunktion?
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar

          Lädt...
          X