Rev Author Line No. Line
130 kaklik 1 <?php
2 // +----------------------------------------------------------------------+
3 // | PHP Version 4 |
4 // +----------------------------------------------------------------------+
5 // | Copyright (c) 1997-2004 The PHP Group |
6 // +----------------------------------------------------------------------+
7 // | This source file is subject to version 3.0 of the PHP license, |
8 // | that is bundled with this package in the file LICENSE, and is |
9 // | available at through the world-wide-web at |
10 // | http://www.php.net/license/3_0.txt. |
11 // | If you did not receive a copy of the PHP license and are unable to |
12 // | obtain it through the world-wide-web, please send a note to |
13 // | license@php.net so we can mail you a copy immediately. |
14 // +----------------------------------------------------------------------+
15 // | Authors: Aidan Lister <aidan@php.net> |
16 // +----------------------------------------------------------------------+
17 //
18 // $Id: var_export.php,v 1.15 2005/12/05 14:24:27 aidan Exp $
19  
20  
21 /**
22 * Replace var_export()
23 *
24 * @category PHP
25 * @package PHP_Compat
26 * @link http://php.net/function.var_export
27 * @author Aidan Lister <aidan@php.net>
28 * @version $Revision: 1.15 $
29 * @since PHP 4.2.0
30 * @require PHP 4.0.0 (user_error)
31 */
32 if (!function_exists('var_export')) {
33 function var_export($var, $return = false, $level = 0)
34 {
35 // Init
36 $indent = ' ';
37 $doublearrow = ' => ';
38 $lineend = ",\n";
39 $stringdelim = '\'';
40 $newline = "\n";
41 $find = array(null, '\\', '\'');
42 $replace = array('NULL', '\\\\', '\\\'');
43 $out = '';
44  
45 // Indent
46 $level++;
47 for ($i = 1, $previndent = ''; $i < $level; $i++) {
48 $previndent .= $indent;
49 }
50  
51 // Handle each type
52 switch (gettype($var)) {
53 // Array
54 case 'array':
55 $out = 'array (' . $newline;
56 foreach ($var as $key => $value) {
57 // Key
58 if (is_string($key)) {
59 // Make key safe
60 for ($i = 0, $c = count($find); $i < $c; $i++) {
61 $var = str_replace($find[$i], $replace[$i], $var);
62 }
63 $key = $stringdelim . $key . $stringdelim;
64 }
65  
66 // Value
67 if (is_array($value)) {
68 $export = var_export($value, true, $level);
69 $value = $newline . $previndent . $indent . $export;
70 } else {
71 $value = var_export($value, true, $level);
72 }
73  
74 // Piece line together
75 $out .= $previndent . $indent . $key . $doublearrow . $value . $lineend;
76 }
77  
78 // End string
79 $out .= $previndent . ')';
80 break;
81  
82 // String
83 case 'string':
84 // Make the string safe
85 for ($i = 0, $c = count($find); $i < $c; $i++) {
86 $var = str_replace($find[$i], $replace[$i], $var);
87 }
88 $out = $stringdelim . $var . $stringdelim;
89 break;
90  
91 // Number
92 case 'integer':
93 case 'double':
94 $out = (string) $var;
95 break;
96  
97 // Boolean
98 case 'boolean':
99 $out = $var ? 'true' : 'false';
100 break;
101  
102 // NULLs
103 case 'NULL':
104 case 'resource':
105 $out = 'NULL';
106 break;
107  
108 // Objects
109 case 'object':
110 // Start the object export
111 $out = $newline . $previndent . 'class ' . get_class($var) . ' {' . $newline;
112  
113 // Export the object vars
114 foreach (get_object_vars($var) as $key => $val) {
115 $out .= $previndent . ' var $' . $key . ' = ';
116 if (is_array($val)) {
117 $export = var_export($val, true, $level);
118 $out .= $newline . $previndent . $indent . $export . ';' . $newline;
119 } else {
120 $out .= var_export($val, true, $level) . ';' . $newline;
121 }
122 }
123 $out .= $previndent . '}';
124 break;
125 }
126  
127 // Method of output
128 if ($return === true) {
129 return $out;
130 } else {
131 echo $out;
132 }
133 }
134 }
135  
136 ?>