From:             RQuadling at GMail dot com
Operating system: Windows XP SP2
PHP version:      5.3CVS-2007-11-16 (snap)
PHP Bug Type:     CGI related
Bug description:  getopt doesn't handle unknown parameters.

Description:
------------
getopt() stops processing at the first unknown parameter.

I'm not sure if this is ...

a php bug - getopt should return them as is

or ...

a doc bug - getopt() will cease operation at the first hurdle.



My preference is to return them as is. Maybe a third param to the function
to collect unknown parameters. This would provide backward compatibility if
the function didn't die when an unknown parameter was reached.




The code is a simple test to examine the command line.

Run this with this parameter

-a 1

and then with these

broken -a 1


Reproduce code:
---------------
<?php
var_dump($_SERVER['argv'], getopt('a:b', array('apple=', 'bag')));
?>

Expected result:
----------------
array(3) {
  [0]=>
  string(17) "C:\phpargtest.php"
  [1]=>
  string(2) "-a"
  [2]=>
  string(1) "1"
}
array(1) {
  ["a"]=>
  string(1) "1"
}

array(4) {
  [0]=>
  string(17) "C:\phpargtest.php"
  [1]=>
  string(6) "broken"
  [2]=>
  string(2) "-a"
  [3]=>
  string(1) "1"
}
array(1) {
  [0]=>
  string(6) "broken"
  ["a"]=>
  string(1) "1"
}


Actual result:
--------------
array(3) {
  [0]=>
  string(17) "C:\phpargtest.php"
  [1]=>
  string(2) "-a"
  [2]=>
  string(1) "1"
}
array(1) {
  ["a"]=>
  string(1) "1"
}

array(4) {
  [0]=>
  string(17) "C:\phpargtest.php"
  [1]=>
  string(6) "broken"
  [2]=>
  string(2) "-a"
  [3]=>
  string(1) "1"
}
array(0) {
}

-- 
Edit bug report at http://bugs.php.net/?id=43313&edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=43313&r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=43313&r=trysnapshot52
Try a CVS snapshot (PHP 5.3): 
http://bugs.php.net/fix.php?id=43313&r=trysnapshot53
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=43313&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=43313&r=fixedcvs
Fixed in release:             
http://bugs.php.net/fix.php?id=43313&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=43313&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=43313&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=43313&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=43313&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=43313&r=notwrong
Not enough info:              
http://bugs.php.net/fix.php?id=43313&r=notenoughinfo
Submitted twice:              
http://bugs.php.net/fix.php?id=43313&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=43313&r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=43313&r=php3
Daylight Savings:             http://bugs.php.net/fix.php?id=43313&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=43313&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=43313&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=43313&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=43313&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=43313&r=mysqlcfg

Reply via email to