WordPress.org

Make WordPress Core

Ticket #24661: 24661.1.patch

File 24661.1.patch, 1.1 KB (added by p_enrique, 6 years ago)

Use PCRE extension only when it's available

  • src/wp-includes/formatting.php

     
    801801                }
    802802
    803803                $string = strtr($string, $chars);
     804               
     805                // Removes combining marks using PCRE UTF-8 extension (if available) or a RegEx in UTF-8 bytes
     806                if ( 1 === @preg_match( '/\p{L}/u', "\xc3\xa0" ) ) { // Match 'Unicode letter' with 'Latin a with grave'
     807                        $string = preg_replace( '/[\p{Mn}\p{Me}]/u', '', $string );
     808                } else {
     809                        $combining_marks = array(
     810                                '/(\xCC[\x80-\xBF])|(\xCD[\x80-\xAF])/',                // Combining Diacritical Marks (U+0300 ... U+036F)
     811                                '/\xE1\xB7[\x80-\xBF]/',                                                // Combining Diacritical Marks Supplement  (U+1DC0 ... U+1DFF)
     812                                '/\xE2\x83[\x90-\xBF]/',                                                // Combining Diacritical Marks for Symbols (U+20D0 ... U+20FF)
     813                                '/\xEF\xB8[\xA0-\xAF]/'                                                 // Combining Half Marks (U+FE20 .... U+FE2F)
     814                        );
     815                        $string = preg_replace( $combining_marks, '', $string );
     816                }
     817               
    804818        } else {
    805819                // Assume ISO-8859-1 if not UTF-8
    806820                $chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158)