PHP_Compat
[ class tree: PHP_Compat ] [ index: PHP_Compat ] [ all elements ]

Source for file getopt.php

Documentation is available at getopt.php

  1. <?php
  2. define('PHP_COMPAT_GETOPT_NO_VALUE'0);
  3. define('PHP_COMPAT_GETOPT_VALUE_REQUIRED'1);
  4. define('PHP_COMPAT_GETOPT_VALUE_OPTIONAL'2);
  5.  
  6. /**
  7.  * Replace getopt()
  8.  *
  9.  * @category    PHP
  10.  * @package     PHP_Compat
  11.  * @license     LGPL - http://www.gnu.org/licenses/lgpl.html
  12.  * @copyright   2004-2007 Aidan Lister <aidan@php.net>, Arpad Ray <arpad@php.net>
  13.  * @link        http://php.net/function.getopt
  14.  * @author      Jim Wigginton <terrafrost@php.net>
  15.  * @version     $Revision: 301612 $
  16.  * @since       PHP 4.3.0
  17.  */
  18. function php_compat_getopt($options$longopts = NULL)
  19. {
  20.     global $argv$argc;
  21.     
  22.     $output = array();
  23.     $opt '';
  24.     
  25.     if (is_array($options)) {
  26.         user_error('getopt() expects parameter 1 to be string, array given'E_USER_WARNING);
  27.         return false;
  28.     }
  29.     
  30.     for ($i = 1; $i $argc$i++{
  31.         switch (true{
  32.             case is_array($longopts&& substr($argv[$i]02== '--':
  33.                 $pos strpos($argv[$i]'=');
  34.                 $opt is_int($possubstr($argv[$i]2$pos - 2substr($argv[$i]2);
  35.                 
  36.                 list($matcharray_values(preg_grep('#^' preg_quote($opt'#'':{0,2}$#'$longopts));
  37.                 if (is_null($match)) {
  38.                     break;
  39.                 }
  40.                 $value $pos === false ? null : substr($argv[$i]$pos + 1);
  41.                 $type strlen(substr($matchstrlen($opt)));
  42.                 
  43.                 php_compat_getopt_helper($opt$value$type$output);
  44.                 break;
  45.             case $argv[$i][0== '-' && preg_match('#' preg_quote($argv[$i][1]'#''(:{0,2})#'$options$matches):
  46.                 $opt $argv[$i][1];
  47.                 $type strlen($matches[1]);
  48.                 $value substr($argv[$i]2);
  49.                 if ($type == 0{
  50.                     if ($value{
  51.                         $argv[$i'-' $value;
  52.                         --$i;
  53.                     }
  54.                     $value = null;
  55.                 }
  56.                 
  57.                 php_compat_getopt_helper($opt$value$type$output);
  58.                 break;
  59.             case !empty($opt):
  60.                 if (isset($output[$opt]&& is_array($output[$opt])) {
  61.                     $output[$opt][count($output[$opt]- 1$argv[$i];
  62.                 else {
  63.                     $output[$opt$argv[$i];
  64.                 }
  65.                 $opt '';
  66.         }
  67.         
  68.         if (!empty($value|| $type == PHP_COMPAT_GETOPT_NO_VALUE{
  69.             $opt '';
  70.         }
  71.     }
  72.     
  73.     return $output;
  74. }
  75.  
  76. function php_compat_getopt_helper($opt$value$type&$output{
  77.     switch ($type{
  78.         case PHP_COMPAT_GETOPT_NO_VALUE:
  79.             switch (true{
  80.                 case !isset($output[$opt]):
  81.                     $output[$opt= false;
  82.                     break;
  83.                 case is_array($output[$opt]):
  84.                     $output[$opt][= false;
  85.                     break;
  86.                 default:
  87.                     $output[$opt= array($output[$opt]false);
  88.             }
  89.             break;
  90.         case PHP_COMPAT_GETOPT_VALUE_REQUIRED:
  91.             if (!empty($value)) {
  92.                 switch (true{
  93.                     case !isset($output[$opt]):
  94.                         $output[$opt$value;
  95.                         break;
  96.                     case is_array($output[$opt]):
  97.                         $output[$opt][$value;
  98.                         break;
  99.                     default:
  100.                         $output[$opt= array($output[$opt]$value);
  101.                 }
  102.             }
  103.             break;
  104.         case PHP_COMPAT_GETOPT_VALUE_OPTIONAL:
  105.             $value !empty($value$value : false;
  106.             switch (true{
  107.                 case !isset($output[$opt]):
  108.                     $output[$opt$value;
  109.                     break;
  110.                 case is_array($output[$opt]):
  111.                     $output[$opt][$value;
  112.                     break;
  113.                 default:
  114.                     $output[$opt= array($output[$opt]$value);
  115.             }
  116.     }
  117. }
  118.  
  119. // Define
  120. if (!function_exists('getopt')) {
  121.     function getopt($options$longopts = NULL{
  122.         return php_compat_getopt($options$longopts);
  123.     }
  124. }
  125. ?>

Documentation generated on Mon, 11 Mar 2019 15:39:39 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.