WordPress.org

Make WordPress Core

Ticket #8689: pregreplaceeremove.twomore.patch

File pregreplaceeremove.twomore.patch, 2.3 KB (added by tbaboon, 9 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}