[ Index ]
 

Code source de GeekLog 1.4.1

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/system/pear/PHP/Compat/Function/ -> var_export.php (source)

   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  ?>


Généré le : Wed Nov 21 12:27:40 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics