C:\xampp\php\pear\PHP\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
126
127
128
129
130
131
132
133
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4                                                        |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group                                |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license,       |
// | that is bundled with this package in the file LICENSE, and is        |
// | available at through the world-wide-web at                           |
// | http://www.php.net/license/3_0.txt.                                  |
// | If you did not receive a copy of the PHP license and are unable to   |
// | obtain it through the world-wide-web, please send a note to          |
// | license@php.net so we can mail you a copy immediately.               |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net>                                |
// +----------------------------------------------------------------------+
//
// $Id: Compat.php,v 1.19 2005/05/10 12:05:36 aidan Exp $


/**
 * Provides missing functionality in the form of constants and functions
 *   for older versions of PHP
 *
 * Optionally, you may simply include the file.
 *   e.g. require_once 'PHP/Compat/Function/scandir.php';
 *
 * @category    PHP
 * @package     PHP_Compat
 * @version     $Revision: 1.19 $
 * @author      Aidan Lister <aidan@php.net>
 * @static
 */
class PHP_Compat
{
    
/**
     * Load a function, or array of functions
     *
     * @param   string|array    $function The function or functions to load
     * @return  bool|array      TRUE if loaded, FALSE if not
     */
    
function loadFunction($function)
    {
        
// Recursiveness
        
if (is_array($function)) {
            
$res = array();
            foreach (
$function as $singlefunc) {
                
$res[$singlefunc] = PHP_Compat::loadFunction($singlefunc);
            }

            return 
$res;
        }

        
// Load function
        
if (!function_exists($function)) {
            
$file sprintf('PHP/Compat/Function/%s.php'$function);
            if ((@include_once 
$file) !== false) {
                return 
true;
            }
        }

        return 
false;
    }


    
/**
     * Load a constant, or array of constants
     *
     * @param   string|array    $constant The constant or constants to load
     * @return  bool|array      TRUE if loaded, FALSE if not
     */
    
function loadConstant($constant)
    {
        
// Recursiveness
        
if (is_array($constant)) {
            
$res = array();
            foreach (
$constant as $singleconst) {
                
$res[$singleconst] = PHP_Compat::loadConstant($singleconst);
            }

            return 
$res;
        }

        
// Load constant
        
$file sprintf('PHP/Compat/Constant/%s.php'$constant);
        if ((@include_once 
$file) !== false) {
            return 
true;
        }

        return 
false;
    }


    
/**
     * Load components for a PHP version
     *
     * @param   string      $version    PHP Version to load
     * @return  array       An associative array of component names loaded
     */
    
function loadVersion($version null)
    {
        
// Include list of components
        
require 'PHP/Compat/Components.php';

        
// Include version_compare to work with older versions
        
PHP_Compat::loadFunction('version_compare');

        
// Init
        
$phpversion phpversion();
        
$methods = array(
            
'function' => 'loadFunction',
            
'constant' => 'loadConstant');
        
$res = array();

        
// Iterate each component
        
foreach ($components as $type => $slice) {
            foreach (
$slice as $component => $compversion) {
                if ((
$version === null &&
                        
=== version_compare($compversion$phpversion)) ||    // C > PHP
                       
(=== version_compare($compversion$version) ||        // C = S
                        
=== version_compare($compversion$phpversion))) {    // C > PHP
                    
                    
$res[$type][$component] =
                        
call_user_func(array('PHP_Compat'$methods[$type]), $component);
                }
            }
        }

        return 
$res;
    }
}

?>
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586