/var/www/(Del)hsihk.com/wp-includes/compat.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?php
/**
 * WordPress implementation for PHP functions either missing from older PHP versions or not included by default.
 *
 * @package PHP
 * @access private
 */

// If gettext isn't available
if ( !function_exists('_') ) {
    function 
_($string) {
        return 
$string;
    }
}

if ( !
function_exists('mb_substr') ):
    function 
mb_substr$str$start$length=null$encoding=null ) {
        return 
_mb_substr($str$start$length$encoding);
    }
endif;

function 
_mb_substr$str$start$length=null$encoding=null ) {
    
// the solution below, works only for utf-8, so in case of a different
    // charset, just use built-in substr
    
$charset get_option'blog_charset' );
    if ( !
in_array$charset, array('utf8''utf-8''UTF8''UTF-8') ) ) {
        return 
is_null$length )? substr$str$start ) : substr$str$start$length);
    }
    
// use the regex unicode support to separate the UTF-8 characters into an array
    
preg_match_all'/./us'$str$match );
    
$chars is_null$length )? array_slice$match[0], $start ) : array_slice$match[0], $start$length );
    return 
implode''$chars );
}

if ( !
function_exists('hash_hmac') ):
function 
hash_hmac($algo$data$key$raw_output false) {
    return 
_hash_hmac($algo$data$key$raw_output);
}
endif;

function 
_hash_hmac($algo$data$key$raw_output false) {
    
$packs = array('md5' => 'H32''sha1' => 'H40');

    if ( !isset(
$packs[$algo]) )
        return 
false;

    
$pack $packs[$algo];

    if (
strlen($key) > 64)
        
$key pack($pack$algo($key));

    
$key str_pad($key64chr(0));

    
$ipad = (substr($key064) ^ str_repeat(chr(0x36), 64));
    
$opad = (substr($key064) ^ str_repeat(chr(0x5C), 64));

    
$hmac $algo($opad pack($pack$algo($ipad $data)));

    if ( 
$raw_output )
        return 
pack$pack$hmac );
    return 
$hmac;
}

if ( !
function_exists('json_encode') ) {
    function 
json_encode$string ) {
        global 
$wp_json;

        if ( !
is_a($wp_json'Services_JSON') ) {
            require_once( 
ABSPATH WPINC '/class-json.php' );
            
$wp_json = new Services_JSON();
        }

        return 
$wp_json->encodeUnsafe$string );
    }
}

if ( !
function_exists('json_decode') ) {
    function 
json_decode$string$assoc_array false ) {
        global 
$wp_json;

        if ( !
is_a($wp_json'Services_JSON') ) {
            require_once( 
ABSPATH WPINC '/class-json.php' );
            
$wp_json = new Services_JSON();
        }

        
$res $wp_json->decode$string );
        if ( 
$assoc_array )
            
$res _json_decode_object_helper$res );
        return 
$res;
    }
    function 
_json_decode_object_helper($data) {
        if ( 
is_object($data) )
            
$data get_object_vars($data);
        return 
is_array($data) ? array_map(__FUNCTION__$data) : $data;
    }
}

if ( ! 
function_exists'hash_equals' ) ) :
/**
 * Compare two strings in constant time.
 *
 * This function was added in PHP 5.6.
 * It can leak the length of a string.
 *
 * @since 3.9.2
 *
 * @param string $a Expected string.
 * @param string $b Actual string.
 * @return bool Whether strings are equal.
 */
function hash_equals$a$b ) {
    
$a_length strlen$a );
    if ( 
$a_length !== strlen$b ) ) {
        return 
false;
    }
    
$result 0;

    
// Do not attempt to "optimize" this.
    
for ( $i 0$i $a_length$i++ ) {
        
$result |= ord$a$i ] ) ^ ord$b$i ] );
    }

    return 
$result === 0;
}
endif;