[PHP-users 11877] Re: コマンドライン版で、 argv を読み込めない

吉塚 陽子 php-users@php.gr.jp
Thu, 28 Nov 2002 17:41:04 +0900


吉塚です。

重松さん、茂木さん、ご回答ありがとうございます。
お二方のご指定どおりのオチでした。

> おそらくは、register_globals が off というオチでは。

モジュール版では、「register_globals = Off」が推奨されていますね。
コマンドライン版では、「register_globals = On」でないとargvが読めなくなりま
す。
「register_globals = Off」で、共存はできないのでしょうか?

先のサンプルプログラムに、ini_set( "register_globals", "On" ) ;
を付け足しても同じ結果になります。
マニュアルには、register_globals の変更は、
.htaccessおよび httpd.confのVHostディレクティブ内で設定可能
あるいは
php.ini または httpd.conf (しかし、httpd.confのVHostブ ロック内では不可)で設
定可能 
となっていますので当然ですね。
--------------------------------------------
#!/usr/local/bin/php -q
<?php
 ini_set( "register_globals", "On" ) ;
 if( $argc < 2 )
 {
        die( "Usage: progrum_name parameter\n" ) ;
 }
 print "0=" . $argv[0] ."\n" ;
 print "1=" . $argv[1] ."\n" ;
 print( "Progrum End !!\n" ) ;
?>
--------------------------------------------
$ sample.php
 Usage: progrum_name parameter
$ sample.php test
 Usage: progrum_name parameter