php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #9289 Command line argument list inaccurate
Submitted: 2001-02-15 14:48 UTC Modified: 2001-05-07 20:53 UTC
From: reinke at e-softinc dot com Assigned:
Status: Closed Package: Unknown/Other Function
PHP Version: 4.0.4pl1 OS: Linux
Private report: No CVE-ID: None
 [2001-02-15 14:48 UTC] reinke at e-softinc dot com
PHP, when being run from the command line, has been mangling
the command line arguments badly for some while. It would be
nice if they mapped to the same usage as C programs.

PHP4.04pl1 is particularly bad - argc is completely broken:

Consider the script
<? printf("%d\n", $argc); ?>

Here's the output from php4.01, and then from php4.04pl1

$ php -f test.php
0
$ php -f test.php a
1
$ php -f test.php a b
2
$ php -f test.php a b c
3


$ /home/webapps/webserver/bin/php404pl1 -f test.php
2
$ /home/webapps/webserver/bin/php404pl1 -f test.php a
2
$ /home/webapps/webserver/bin/php404pl1 -f test.php a b
3
$ /home/webapps/webserver/bin/php404pl1 -f test.php a b c
4

As you can see, argc is never less than 2, and in fact is a value
of 2 with zero args or one arg (bad bad bad!).

Sort of important for us - we find PHP SO EASY to program in,
that we actually use it as the language of choice, even for batch
programming, when performance is not absolutely critical.
But it sort of makes it tough to pass in cmd line arguments...


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-05-07 20:30 UTC] jmoore@php.net
Reproducable under Win2k.

- James
 [2001-05-07 20:53 UTC] zeev@php.net
Fixed in the CVS - thanks for the report!

Note that
./php -f foo.php
sets $argc to 1, like
./php foo.php
does.  Old versions of PHP erroneously set it to 0.
 
PHP Copyright © 2001-2022 The PHP Group
All rights reserved.
Last updated: Wed Jul 06 00:05:46 2022 UTC