#43313 [Asn->Opn]: getopt doesn't handle unknown parameters.
| From: | jani@php.net | Date: | Sun, 02 Nov 2008 13:12:41 +0000 |
| Subject: | #43313 [Asn->Opn]: getopt doesn't handle unknown parameters. | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-130492@lists.php.net to get a copy of this message | ||
ID: 43313
Updated by: jani@php.net
Reported By: RQuadling at GMail dot com
-Status: Assigned
+Status: Open
Bug Type: CGI related
Operating System: Windows XP SP2
PHP Version: 5.3CVS-2007-11-16 (snap)
Assigned To: bjori
Previous Comments:
------------------------------------------------------------------------
[2007-11-16 15:18:00] RQuadling at GMail dot com
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 this bug report at http://bugs.php.net/?id=43313&edit=1