WordPress/wp-includes/compat.php

157 lines
3.3 KiB
PHP

<?php
/* Functions missing from older PHP versions */
/* Added in PHP 4.2.0 */
if (!function_exists('floatval')) {
function floatval($string) {
return ((float) $string);
}
}
if (!function_exists('is_a')) {
function is_a($object, $class) {
// by Aidan Lister <aidan@php.net>
if (get_class($object) == strtolower($class)) {
return true;
} else {
return is_subclass_of($object, $class);
}
}
}
if (!function_exists('ob_clean')) {
function ob_clean() {
// by Aidan Lister <aidan@php.net>
if (@ob_end_clean()) {
return ob_start();
}
return false;
}
}
/* Added in PHP 4.3.0 */
function printr($var, $do_not_echo = false) {
// from php.net/print_r user contributed notes
ob_start();
print_r($var);
$code = htmlentities(ob_get_contents());
ob_clean();
if (!$do_not_echo) {
echo "<pre>$code</pre>";
}
ob_end_clean();
return $code;
}
/* compatibility with PHP versions older than 4.3 */
if ( !function_exists('file_get_contents') ) {
function file_get_contents( $file ) {
$file = file($file);
return !$file ? false : implode('', $file);
}
}
if (!defined('CASE_LOWER')) {
define('CASE_LOWER', 0);
}
if (!defined('CASE_UPPER')) {
define('CASE_UPPER', 1);
}
/**
* Replace array_change_key_case()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_change_key_case
* @author Stephan Schmidt <schst@php.net>
* @author Aidan Lister <aidan@php.net>
* @version $Revision$
* @since PHP 4.2.0
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('array_change_key_case')) {
function array_change_key_case($input, $case = CASE_LOWER)
{
if (!is_array($input)) {
user_error('array_change_key_case(): The argument should be an array',
E_USER_WARNING);
return false;
}
$output = array ();
$keys = array_keys($input);
$casefunc = ($case == CASE_LOWER) ? 'strtolower' : 'strtoupper';
foreach ($keys as $key) {
$output[$casefunc($key)] = $input[$key];
}
return $output;
}
}
if (!function_exists('http_build_query')) {
function http_build_query($data, $prefix=null, $sep=null) {
return _http_build_query($data, $prefix, $sep);
}
}
// from php.net (modified by Mark Jaquith to behave like the native PHP5 function)
function _http_build_query($data, $prefix=null, $sep=null, $key='', $urlencode=true) {
$ret = array();
if ( $urlencode ) {
$lsb = '%5B';
$rsb = '%5D';
} else {
$lsb = '[';
$rsb = ']';
}
foreach ( (array) $data as $k => $v ) {
if ( $urlencode)
$k = urlencode($k);
if ( is_int($k) && $prefix != null )
$k = $prefix.$k;
if ( !empty($key) )
$k = $key . $lsb . $k . $rsb;
if ( $v === NULL )
continue;
elseif ( $v === FALSE )
$v = '0';
if ( is_array($v) || is_object($v) )
array_push($ret,_http_build_query($v, '', $sep, $k, $urlencode));
elseif ( $urlencode )
array_push($ret, $k.'='.urlencode($v));
else
array_push($ret, $k.'='.$v);
}
if ( NULL === $sep )
$sep = ini_get('arg_separator.output');
return implode($sep, $ret);
}
if ( !function_exists('_') ) {
function _($string) {
return $string;
}
}
// Added in PHP 5.0
if (!function_exists('stripos')) {
function stripos($haystack, $needle, $offset = 0) {
return strpos(strtolower($haystack), strtolower($needle), $offset);
}
}
?>