WordPress.org

Make WordPress Core

Ticket #9771: 9771.patch

File 9771.patch, 3.0 KB (added by hakre, 9 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);