ID: 14416
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Open
+Status: Bogus
Bug Type: PHP options/info functions
Operating System: Solaris 7
PHP Version: 4.1.0
New Comment:
This is an OS limitation. On most unix systems shebang line is limited
to one option and on some to 32 characters only. The only OS that I
know this works on is FreeBSD.
Previous Comments:
------------------------------------------------------------------------
[2002-04-03 18:00:24] [EMAIL PROTECTED]
I'm using v4.1.2 on Linux, and I'm seeing the same issue.
It is not related specifically to -q and -d, but the number of options
specified. If more than one option is specified (regardless of which),
then _none_ of them will work.
This script works fine:
#!/usr/local/bin/php -dregister_globals
<?= "$PWD\n" ?>
But as soon as you add any character to the end of the shebang line, it
fails. Also, -d options must _not_ have a space between the d and the
option name. I.e, "-dregister_globals" works but "-d register_globals"
does not.
------------------------------------------------------------------------
[2001-12-11 13:28:32] [EMAIL PROTECTED]
Yes, it still fails under the brand new 4.1.0
alester@flr4[~]$ cat dq
#!/usr/local/bin/php -dinclude_path=.:../../Class:../../Include -q
<?php
print "PHP version=".phpversion()."\n";
print "include_path=".ini_get("include_path")."\n";
?>
alester@flr4[~]$ cat qd
#!/usr/local/bin/php -q -dinclude_path=.:../../Class:../../Include
<?php
print "PHP version=".phpversion()."\n";
print "include_path=".ini_get("include_path")."\n";
?>
Results are still the same:
# ignores the -q
alester@flr4[~]$ ./dq
Content-type: text/html
PHP version=4.1.0
include_path=.:../../Class:../../Include
# ignores the -d
alester@flr4[~]$ ./qd
PHP version=4.1.0
include_path=.
------------------------------------------------------------------------
[2001-12-11 04:24:36] [EMAIL PROTECTED]
Does this happen with the released PHP 4.1.0?
I don't have the RC handy, but I can't reproduce (On linux)
with 4.0.6 or 4.1.0
$ php410 -q -dinclude_path=.:../../Class:../../Include
<? echo ini_get('include_path') . "\n" ?>
.:../../Class:../../Include
$ php410 -dinclude_path=.:../../Class:../../Include -q
<? echo ini_get('include_path') . "\n" ?>
.:../../Class:../../Include
------------------------------------------------------------------------
[2001-12-10 18:00:58] [EMAIL PROTECTED]
It seems that -q and -d cannot exist on the same shebang line. We're
using PHP for standalone shell scripts (i.e. no thru the web server).
-q and -d seem to negate each other: Whichever comes first on the
shebang line wins.
alester@flr4[~]$ cat qd
#!/usr/src/php-4.1.0RC4/php -q
-dinclude_path=.:../../Class:../../Include
<?php
print "include_path=";
print ini_get("include_path");
print "\n";
?>
alester@flr4[~]$ ./qd
include_path=.
# The -q works, since we have no headers, but the include_path isn't
changed.
alester@flr4[~]$ cat dq
#!/usr/src/php-4.1.0RC4/php -dinclude_path=.:../../Class:../../Include
-q
<?php
print "include_path=";
print ini_get("include_path");
print "\n";
?>
alester@flr4[~]$ ./dq
Content-type: text/html
include_path=.:../../Class:../../Include
alester@flr4[~]$
# The include path is changed, but now we have the Content-type header
that -q should suppress.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=14416&edit=1