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
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: reinke at e-softinc dot com
New email:
PHP Version: OS:

 

 [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

Pull Requests

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-2024 The PHP Group
All rights reserved.
Last updated: Sun Dec 22 11:01:30 2024 UTC