Make WordPress Core

Ticket #16918: ticket.16918.2.diff

File ticket.16918.2.diff, 6.7 KB (added by ptahdunbar, 14 years ago)
  • wp-includes/compat.php

     
    1 <?php
    2 /**
    3  * WordPress implementation for PHP functions missing from older PHP versions.
    4  *
    5  * @package PHP
    6  * @access private
    7  */
    8 
    9 // Added in PHP 5.0
    10 
    11 if (!function_exists('http_build_query')) {
    12         function http_build_query($data, $prefix=null, $sep=null) {
    13                 return _http_build_query($data, $prefix, $sep);
    14         }
    15 }
    16 
    17 // from php.net (modified by Mark Jaquith to behave like the native PHP5 function)
    18 function _http_build_query($data, $prefix=null, $sep=null, $key='', $urlencode=true) {
    19         $ret = array();
    20 
    21         foreach ( (array) $data as $k => $v ) {
    22                 if ( $urlencode)
    23                         $k = urlencode($k);
    24                 if ( is_int($k) && $prefix != null )
    25                         $k = $prefix.$k;
    26                 if ( !empty($key) )
    27                         $k = $key . '%5B' . $k . '%5D';
    28                 if ( $v === NULL )
    29                         continue;
    30                 elseif ( $v === FALSE )
    31                         $v = '0';
    32 
    33                 if ( is_array($v) || is_object($v) )
    34                         array_push($ret,_http_build_query($v, '', $sep, $k, $urlencode));
    35                 elseif ( $urlencode )
    36                         array_push($ret, $k.'='.urlencode($v));
    37                 else
    38                         array_push($ret, $k.'='.$v);
    39         }
    40 
    41         if ( NULL === $sep )
    42                 $sep = ini_get('arg_separator.output');
    43 
    44         return implode($sep, $ret);
    45 }
    46 
    47 if ( !function_exists('_') ) {
    48         function _($string) {
    49                 return $string;
    50         }
    51 }
    52 
    53 if (!function_exists('stripos')) {
    54         function stripos($haystack, $needle, $offset = 0) {
    55                 return strpos(strtolower($haystack), strtolower($needle), $offset);
    56         }
    57 }
    58 
    59 if ( !function_exists('hash_hmac') ):
    60 function hash_hmac($algo, $data, $key, $raw_output = false) {
    61         return _hash_hmac($algo, $data, $key, $raw_output);
    62 }
    63 endif;
    64 
    65 function _hash_hmac($algo, $data, $key, $raw_output = false) {
    66         $packs = array('md5' => 'H32', 'sha1' => 'H40');
    67 
    68         if ( !isset($packs[$algo]) )
    69                 return false;
    70 
    71         $pack = $packs[$algo];
    72 
    73         if (strlen($key) > 64)
    74                 $key = pack($pack, $algo($key));
    75 
    76         $key = str_pad($key, 64, chr(0));
    77 
    78         $ipad = (substr($key, 0, 64) ^ str_repeat(chr(0x36), 64));
    79         $opad = (substr($key, 0, 64) ^ str_repeat(chr(0x5C), 64));
    80 
    81         $hmac = $algo($opad . pack($pack, $algo($ipad . $data)));
    82 
    83         if ( $raw_output )
    84                 return pack( $pack, $hmac );
    85         return $hmac;
    86 }
    87 
    88 if ( !function_exists('mb_substr') ):
    89         function mb_substr( $str, $start, $length=null, $encoding=null ) {
    90                 return _mb_substr($str, $start, $length, $encoding);
    91         }
    92 endif;
    93 
    94 function _mb_substr( $str, $start, $length=null, $encoding=null ) {
    95         // the solution below, works only for utf-8, so in case of a different
    96         // charset, just use built-in substr
    97         $charset = get_option( 'blog_charset' );
    98         if ( !in_array( $charset, array('utf8', 'utf-8', 'UTF8', 'UTF-8') ) ) {
    99                 return is_null( $length )? substr( $str, $start ) : substr( $str, $start, $length);
    100         }
    101         // use the regex unicode support to separate the UTF-8 characters into an array
    102         preg_match_all( '/./us', $str, $match );
    103         $chars = is_null( $length )? array_slice( $match[0], $start ) : array_slice( $match[0], $start, $length );
    104         return implode( '', $chars );
    105 }
    106 
    107 if ( !function_exists( 'htmlspecialchars_decode' ) ) {
    108         // Added in PHP 5.1.0
    109         // Error checks from PEAR::PHP_Compat
    110         function htmlspecialchars_decode( $string, $quote_style = ENT_COMPAT )
    111         {
    112                 if ( !is_scalar( $string ) ) {
    113                         trigger_error( 'htmlspecialchars_decode() expects parameter 1 to be string, ' . gettype( $string ) . ' given', E_USER_WARNING );
    114                         return;
    115                 }
    116 
    117                 if ( !is_int( $quote_style ) && $quote_style !== null ) {
    118                         trigger_error( 'htmlspecialchars_decode() expects parameter 2 to be integer, ' . gettype( $quote_style ) . ' given', E_USER_WARNING );
    119                         return;
    120                 }
    121 
    122                 return wp_specialchars_decode( $string, $quote_style );
    123         }
    124 }
    125 
    126 // For PHP < 5.2.0
    127 if ( !function_exists('json_encode') ) {
    128         function json_encode( $string ) {
    129                 global $wp_json;
    130 
    131                 if ( !is_a($wp_json, 'Services_JSON') ) {
    132                         require_once( ABSPATH . WPINC . '/class-json.php' );
    133                         $wp_json = new Services_JSON();
    134                 }
    135 
    136                 return $wp_json->encodeUnsafe( $string );
    137         }
    138 }
    139 
    140 if ( !function_exists('json_decode') ) {
    141         function json_decode( $string, $assoc_array = false ) {
    142                 global $wp_json;
    143 
    144                 if ( !is_a($wp_json, 'Services_JSON') ) {
    145                         require_once( ABSPATH . WPINC . '/class-json.php' );
    146                         $wp_json = new Services_JSON();
    147                 }
    148 
    149                 $res = $wp_json->decode( $string );
    150                 if ( $assoc_array )
    151                         $res = _json_decode_object_helper( $res );
    152                 return $res;
    153         }
    154         function _json_decode_object_helper($data) {
    155                 if ( is_object($data) )
    156                         $data = get_object_vars($data);
    157                 return is_array($data) ? array_map(__FUNCTION__, $data) : $data;
    158         }
    159 }
    160 
    161 // pathinfo that fills 'filename' without extension like in PHP 5.2+
    162 function pathinfo52($path) {
    163         $parts = pathinfo($path);
    164         if ( !isset($parts['filename']) ) {
    165                 $parts['filename'] = substr( $parts['basename'], 0, strrpos($parts['basename'], '.') );
    166                 if ( empty($parts['filename']) ) // there's no extension
    167                         $parts['filename'] = $parts['basename'];
    168         }
    169         return $parts;
    170 }
  • wp-includes/functions.php

     
    13671367 * @return string URL encoded string
    13681368 */
    13691369function build_query( $data ) {
    1370         return _http_build_query( $data, null, '&', '', false );
     1370        return http_build_query( $data, null, '&', '', false );
    13711371}
    13721372
    13731373/**
  • wp-settings.php

     
    6363wp_set_lang_dir();
    6464
    6565// Load early WordPress files.
    66 require( ABSPATH . WPINC . '/compat.php' );
    6766require( ABSPATH . WPINC . '/functions.php' );
    6867require( ABSPATH . WPINC . '/class-wp.php' );
    6968require( ABSPATH . WPINC . '/class-wp-error.php' );
  • wp-admin/includes/image-edit.php

     
    551551
    552552        // generate new filename
    553553        $path = get_attached_file($post_id);
    554         $path_parts = pathinfo52( $path );
     554        $path_parts = pathinfo( $path );
    555555        $filename = $path_parts['filename'];
    556556        $suffix = time() . rand(100, 999);
    557557
  • wp-admin/setup-config.php

     
    4040/**#@-*/
    4141
    4242require_once(ABSPATH . WPINC . '/load.php');
    43 require_once(ABSPATH . WPINC . '/compat.php');
    4443require_once(ABSPATH . WPINC . '/functions.php');
    4544require_once(ABSPATH . WPINC . '/class-wp-error.php');
    4645require_once(ABSPATH . WPINC . '/version.php');