WordPress.org

Make WordPress Core

Ticket #8689: pregreplaceeremove.twomore.patch

File pregreplaceeremove.twomore.patch, 2.3 KB (added by tbaboon, 6 years ago)
  • wp-includes/class-phpmailer.php

     
    14131413 
    14141414    switch (strtolower($position)) { 
    14151415      case 'phrase': 
    1416         $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); 
     1416        $encoded = preg_replace_callback("/([^A-Za-z0-9!*+\/ -])/", 
     1417                                         create_function('$match', 
     1418                                         'return "=".sprintf("%02X", ord($match[1]));'), 
     1419                                         $encoded); 
    14171420        break; 
    14181421      case 'comment': 
    1419         $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); 
     1422        $encoded = preg_replace_callback("/([\(\)\"])/", 
     1423                                         create_function('$match', 
     1424                                         'return "=".sprintf("%02X", ord($match[1]));'), 
     1425                                         $encoded); 
     1426        break; 
    14201427      case 'text': 
    14211428      default: 
    14221429        /* Replace every high ascii, control =, ? and _ characters */ 
    1423         $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e', 
    1424               "'='.sprintf('%02X', ord('\\1'))", $encoded); 
     1430        $encoded = preg_replace_callback('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/', 
     1431                                         create_function('$match', 
     1432                                         'return "=".sprintf("%02X", ord($match[1]));'), 
     1433                                         $encoded); 
    14251434        break; 
    14261435    } 
    14271436 
  • wp-includes/formatting.php

     
    788788        // Fixes for browsers' javascript bugs 
    789789        global $is_macIE, $is_winIE; 
    790790 
    791         /** @todo use preg_replace_callback() instead */ 
    792791        if ( $is_winIE || $is_macIE ) 
    793                 $text =  preg_replace("/\%u([0-9A-F]{4,4})/e",  "'&#'.base_convert('\\1',16,10).';'", $text); 
     792                $text =  preg_replace_callback("/\%u([0-9A-F]{4,4})/", 
     793                                                create_function('$hex', 
     794                                                'return "&#".base_convert($hex[1],16,10).";";'), 
     795                                                $text); 
    794796 
    795797        return $text; 
    796798}