PHPでコマンドラインからの実行を判定したいのですが、以下➀と②は常に一致しますか? // ➀ if( php_sapi_name() === 'cli' ){

PHP169閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

NEW! この回答はいかがでしたか? リアクションしてみよう

> $_SERVER['SERVER_PROTOCOL'] ありがとうございます。なるほど「SERVER_PROTOCOL」は「HTTPからサーバーにリクエストしないと入らない値」というわけですね。 > あと、コマンドラインからだと $_SERVER['DOCUMENT_ROOT'] が(存在はしているけど)空文字列になっていませんかね? たしかに、これも必ずかどうか分かりませんが、空文字になります。(質問と関係ありませんが、今までこれに頼って書いていたのに、コマンドから実行すると空文字になってしまうので今ちょうどベタ打ちに直してたところです。)

その他の回答(1件)

どんな場合でも確実なphp_sapi_name()を使用してください。 参照されているリンクは、別にphp_sapi_name()が遅いということを示しているわけではありません。 なお、今後も考え方として大事にしてほしいのは、万が一多少「遅い」としても、それは大量のアクセスをさばくときに考えればいいことです。大規模なWebサービスなどをつくったときに初めて考えればいいです。

この返信は削除されました