[PHP-dev 1260] Re: PHP-4.1.3から、cli版で作成してPHPコマンドで、php.iniを読み込めない

Tadashi Jokagi ml @ elf.no-ip.org
2006年 5月 28日 (日) 00:59:49 JST


      上鍵です.こんにちは.
      同様のことは「[PHP-dev 1251]」でやってたりしますが一応.

$ ./main -a -b -c/path/to/ini -c /path/to/ini -c /path/to/ini
0 [./main]
1 [-a]
2 [-b]
3 [-c/path/to/ini]
4 [-c]
5 [/path/to/ini]
6 [-c]
7 [/path/to/ini]

    で,既に問題は「[PHP-dev 1257]」にて明白で,Linux では shebang は

#!<COMMAND-PATH> <ARGUMENT>

    だと思われます.これを main に当てはめるとこんな感じです.

$ ./main "-a -b -c/path/to/ini -c /path/to/ini -c /path/to/ini"
0 [./main]
1 [-a -b -c/path/to/ini -c /path/to/ini -c /path/to/ini]

    さらに shebang 形式にして実験してみます.

$ echo '#!'"$PWD/main -a -b -c/path/to/ini "-c /path/to/ini" -c /path/to/ini" > foo.sh
$ chmod +x foo.sh
$ ./foo.sh 
0 [/tmp/main]
1 [-a -b -c/path/to/ini -c /path/to/ini -c /path/to/ini]
2 [./foo.sh]

    つまり,そもそもの記述法だと,

#!/usr/local/bin/php -c /usr/local/lib/php.ini

    これは下記と近いことになります.

/usr/local/bin/php "-c /usr/local/lib/php.ini"

    gcc で確認した GNU getopt(というかglibc 内の getopt になるんでしょ
    うけど)も PHP CLI SAPI の getopt も上記は

/usr/local/bin/php "-c" " /usr/local/lib/php.ini"

    と等価になります.少なくとも GNU getopt と PHP CLI SAPI の getopt
    は少なくとも上記に関して一般的な挙動として等価であるので,「バグ
    ではない」と思いますがいかがでしょうか?

#識者でもないので細かいことは自信がないですが
-- 
----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Setagaya city mailto:elf @ elf.no-ip.org
YokukitanaII http://elf.no-ip.org/
Yokukitablog http://blog.poyo.jp/
Yokukitawiki http://wiki.poyo.jp/


PHP-dev メーリングリストの案内