[ Index ]
 

Code source de GeekLog 1.4.1

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/system/pear/PHP/Compat/Function/ -> http_build_query.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: Stephan Schmidt <schst@php.net>                             |

  16  // |          Aidan Lister <aidan@php.net>                                |

  17  // +----------------------------------------------------------------------+

  18  //

  19  // $Id: http_build_query.php,v 1.16 2005/05/31 08:54:57 aidan Exp $

  20  
  21  
  22  /**

  23   * Replace function http_build_query()

  24   *

  25   * @category    PHP

  26   * @package     PHP_Compat

  27   * @link        http://php.net/function.http-build-query

  28   * @author      Stephan Schmidt <schst@php.net>

  29   * @author      Aidan Lister <aidan@php.net>

  30   * @version     $Revision: 1.16 $

  31   * @since       PHP 5

  32   * @require     PHP 4.0.0 (user_error)

  33   */
  34  if (!function_exists('http_build_query')) {
  35      function http_build_query($formdata, $numeric_prefix = null)
  36      {
  37          // If $formdata is an object, convert it to an array

  38          if (is_object($formdata)) {
  39              $formdata = get_object_vars($formdata);
  40          }
  41  
  42          // Check we have an array to work with

  43          if (!is_array($formdata)) {
  44              user_error('http_build_query() Parameter 1 expected to be Array or Object. Incorrect value given.',
  45                  E_USER_WARNING);
  46              return false;
  47          }
  48  
  49          // If the array is empty, return null

  50          if (empty($formdata)) {
  51              return;
  52          }
  53  
  54          // Argument seperator

  55          $separator = ini_get('arg_separator.output');
  56  
  57          // Start building the query

  58          $tmp = array ();
  59          foreach ($formdata as $key => $val) {
  60              if (is_integer($key) && $numeric_prefix != null) {
  61                  $key = $numeric_prefix . $key;
  62              }
  63  
  64              if (is_scalar($val)) {
  65                  array_push($tmp, urlencode($key).'='.urlencode($val));
  66                  continue;
  67              }
  68  
  69              // If the value is an array, recursively parse it

  70              if (is_array($val)) {
  71                  array_push($tmp, __http_build_query($val, urlencode($key)));
  72                  continue;
  73              }
  74          }
  75  
  76          return implode($separator, $tmp);
  77      }
  78  
  79      // Helper function

  80      function __http_build_query ($array, $name)
  81      {
  82          $tmp = array ();
  83          foreach ($array as $key => $value) {
  84              if (is_array($value)) {
  85                  array_push($tmp, __http_build_query($value, sprintf('%s[%s]', $name, $key)));
  86              } elseif (is_scalar($value)) {
  87                  array_push($tmp, sprintf('%s[%s]=%s', $name, urlencode($key), urlencode($value)));
  88              } elseif (is_object($value)) {
  89                  array_push($tmp, __http_build_query(get_object_vars($value), sprintf('%s[%s]', $name, $key)));
  90              }
  91          }
  92  
  93          // Argument seperator

  94          $separator = ini_get('arg_separator.output');
  95  
  96          return implode($separator, $tmp);
  97      }
  98  }
  99  
 100  ?>


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