[ Index ]

PHP Cross Reference of Limb3

title

Body

[close]

/net/src/ -> lmbUploadedFilesParser.class.php (source)

   1  <?php
   2  /*
   3   * Limb PHP Framework
   4   *
   5   * @link http://limb-project.com 
   6   * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
   7   * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
   8   */
   9  
  10  lmb_require('limb/net/src/lmbUploadedFile.class.php');
  11  
  12  /**

  13   * class lmbUploadedFilesParser.

  14   *

  15   * @package net

  16   * @version $Id: lmbUploadedFilesParser.class.php 5945 2007-06-06 08:31:43Z pachanga $

  17   */
  18  class lmbUploadedFilesParser
  19  {
  20    function parse($files)
  21    {
  22      $result = array();
  23  
  24      foreach($files as $key => $chunk)
  25      {
  26        if($this->_isSimple($chunk))
  27          $result[$key] = $chunk;
  28        else
  29          $result[$key] = $this->_parseComplexChunk($chunk);
  30      }
  31      return $result;
  32    }
  33  
  34    function objectify($files)
  35    {
  36      return $this->_wrapWithObjects($this->parse($files));
  37    }
  38  
  39    protected function _isSimple($chunk)
  40    {
  41      if((isset($chunk['name']) && !is_array($chunk['name'])) &&
  42         (isset($chunk['error']) && !is_array($chunk['error'])) &&
  43         (isset($chunk['type']) && !is_array($chunk['type'])) &&
  44         (isset($chunk['size']) && !is_array($chunk['size'])) &&
  45         (isset($chunk['tmp_name']) && !is_array($chunk['tmp_name'])))
  46        return true;
  47      else
  48        return false;
  49    }
  50  
  51    function _wrapWithObjects($chunks)
  52    {
  53      $result = array();
  54      foreach($chunks as $key => $chunk)
  55      {
  56        if($this->_isSimple($chunk))
  57          $result[$key] = new lmbUploadedFile($chunk);
  58        else
  59          $result[$key] = $this->_wrapWithObjects($chunk);
  60      }
  61      return $result;
  62    }
  63  
  64    protected function _parseComplexChunk($chunk)
  65    {
  66      $result = array();
  67      foreach($chunk as $property_name => $data_set)
  68      {
  69        foreach($data_set as $arg_name => $value)
  70          $this->_parseRecursivePropertyValue($result[$arg_name], $property_name, $value);
  71      }
  72      return $result;
  73    }
  74  
  75    protected function _parseRecursivePropertyValue(&$result, $property_name, $data_set)
  76    {
  77      if(!is_array($data_set))
  78      {
  79        $result[$property_name] = $data_set;
  80        return;
  81      }
  82  
  83      foreach($data_set as $arg_name => $value)
  84      {
  85        $this->_parseRecursivePropertyValue($result[$arg_name], $property_name, $value);
  86      }
  87    }
  88  }
  89  
  90  ?>


Generated: Sat Aug 30 04:38:32 2008 Cross-referenced by PHPXref 0.7