the /e modifier is deprecated

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

  • the /e modifier is deprecated

    Guten Morgen

    Bei einem älteren Script habe ich nach der Umstellung auf die neuste PHP Version mehrere deprected meldungen erhalten. Bis auf diese oben konnte ich es beheben.

    Kann mir ggf einer sagen, wie ich untenstehende Funktion anpassen muss? Soviel ich bei google gefunden habe mit preg_replace_callback. Jedoch bekomme ich es hier einfach nicht hin:
    PHP-Code:
    preg_replace("/([\55-\68][\12-\18])/e"'urlencode(\'$1\')'$match); 
    Gruss und Danke für eure Hilfe

    Koda

  • #2
    Was soll das hier darstellen? [\55-\68][\12-\18]

    Mag sein, dass ich die Escape-Sequenz nicht kenne, aber das sieht irgendwie broken aus.

    Prinzipiell zur Frage:

    PHP-Code:
    echo preg_replace_callback('/([a-z])/', function ($matches) {
        return 
    strtoupper($matches[1]);
    }, 
    'hello 17 world');

    // HELLO 17 WORLD 
    Zuletzt geändert von mermshaus; 04.01.2014, 01:21.

    Kommentar


    • #3
      Zitat von mermshaus Beitrag anzeigen
      Was soll das hier darstellen? [\55-\68][\12-\18]

      Mag sein, dass ich die Escape-Sequenz nicht kenne, aber das sieht irgendwie broken aus.
      Wegen der Verwendung von urlencode() im eval-Teil hätte ich vermutet, dass er [\x55-\x68][\x12-\x18] meint. Allerdings kommt mir der zu kodierende Bereich (in ASCII 'U' bis 'h' und ein paar Steuerzeichen) komisch vor. Falls ein anderer gemeint war: Warum nicht gleich (raw)urlencode() benutzen? Diese Funktionen wissen, was sie URL-sicher kodieren müssen und was nicht.
      Zuletzt geändert von fireweasel; 29.01.2014, 10:56.
      Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

      Kommentar

      Lädt...
      X