WordPress.org

Make WordPress Core

Ticket #9771: 9771.patch

File 9771.patch, 3.0 KB (added by hakre, 6 years ago)

Code Cleanup

  • wp-admin/import/dotclear.php

     
    4848        } 
    4949} 
    5050 
    51 /* 
    52  Identify UTF-8 text 
    53  Taken from http://www.php.net/manual/fr/function.mb-detect-encoding.php#50087 
    54 */ 
    55 // 
    56 //    utf8 encoding validation developed based on Wikipedia entry at: 
    57 //    http://en.wikipedia.org/wiki/UTF-8 
    58 // 
    59 //    Implemented as a recursive descent parser based on a simple state machine 
    60 //    copyright 2005 Maarten Meijer 
    61 // 
    62 //    This cries out for a C-implementation to be included in PHP core 
    63 // 
    64  
    65 /** 
     51/** csc 
     52 *  
     53 * Not so well documented Helper Functions named "CSC" UTF8 encoding related. 
     54 *  
    6655 * @package WordPress 
    6756 * @subpackage Dotclear_Import 
    6857 * 
    69  * @param string $char 
    70  * @return string 
    71  */ 
    72 function valid_1byte($char) { 
    73         if(!is_int($char)) return false; 
    74                 return ($char & 0x80) == 0x00; 
    75 } 
    76  
    77 /** 
    78  * @package WordPress 
    79  * @subpackage Dotclear_Import 
    80  * 
    81  * @param string $char 
    82  * @return string 
    83  */ 
    84 function valid_2byte($char) { 
    85         if(!is_int($char)) return false; 
    86                 return ($char & 0xE0) == 0xC0; 
    87 } 
    88  
    89 /** 
    90  * @package WordPress 
    91  * @subpackage Dotclear_Import 
    92  * 
    93  * @param string $char 
    94  * @return string 
    95  */ 
    96 function valid_3byte($char) { 
    97         if(!is_int($char)) return false; 
    98                 return ($char & 0xF0) == 0xE0; 
    99 } 
    100  
    101 /** 
    102  * @package WordPress 
    103  * @subpackage Dotclear_Import 
    104  * 
    105  * @param string $char 
    106  * @return string 
    107  */ 
    108 function valid_4byte($char) { 
    109         if(!is_int($char)) return false; 
    110                 return ($char & 0xF8) == 0xF0; 
    111 } 
    112  
    113 /** 
    114  * @package WordPress 
    115  * @subpackage Dotclear_Import 
    116  * 
    117  * @param string $char 
    118  * @return string 
    119  */ 
    120 function valid_nextbyte($char) { 
    121         if(!is_int($char)) return false; 
    122                 return ($char & 0xC0) == 0x80; 
    123 } 
    124  
    125 /** 
    126  * @package WordPress 
    127  * @subpackage Dotclear_Import 
    128  * 
    129  * @param string $string 
    130  * @return string 
    131  */ 
    132 function valid_utf8($string) { 
    133         $len = strlen($string); 
    134         $i = 0; 
    135         while( $i < $len ) { 
    136                 $char = ord(substr($string, $i++, 1)); 
    137                 if(valid_1byte($char)) {    // continue 
    138                         continue; 
    139                 } else if(valid_2byte($char)) { // check 1 byte 
    140                         if(!valid_nextbyte(ord(substr($string, $i++, 1)))) 
    141                                 return false; 
    142                 } else if(valid_3byte($char)) { // check 2 bytes 
    143                         if(!valid_nextbyte(ord(substr($string, $i++, 1)))) 
    144                                 return false; 
    145                         if(!valid_nextbyte(ord(substr($string, $i++, 1)))) 
    146                                 return false; 
    147                 } else if(valid_4byte($char)) { // check 3 bytes 
    148                         if(!valid_nextbyte(ord(substr($string, $i++, 1)))) 
    149                                 return false; 
    150                         if(!valid_nextbyte(ord(substr($string, $i++, 1)))) 
    151                                 return false; 
    152                         if(!valid_nextbyte(ord(substr($string, $i++, 1)))) 
    153                                 return false; 
    154                 } // goto next char 
    155         } 
    156         return true; // done 
    157 } 
    158  
    159 /** 
    160  * @package WordPress 
    161  * @subpackage Dotclear_Import 
    162  * 
    16358 * @param string $s 
    16459 * @return string 
    16560 */ 
    16661function csc ($s) { 
    167         if (valid_utf8 ($s)) { 
     62        if (seems_utf8 ($s)) { 
    16863                return $s; 
    16964        } else { 
    17065                return iconv(get_option ("dccharset"),"UTF-8",$s);