the /e modifier is deprecated

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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 
    Last edited by mermshaus; 04-01-2014, 00:21.

    Comment


    • #3
      Originally posted by mermshaus View Post
      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.
      Last edited by fireweasel; 29-01-2014, 09:56.
      Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

      Comment

      Working...
      X