• ベストアンサー

$_SERVER と $_ENV の違い

教えて頂けますか? $_SERVER と $_ENV の違い、関係を教えて頂けますか? 内容をみると $_SERVER から $_ENV へコピーされているのかな? と思うのですが... よろしくおねがいします。

  • PHP
  • 回答数1
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
noname#243182
noname#243182
回答No.1

「$_SERVER」はWebサーバにより生成され、「$_ENV」は環境変数として現在のスクリプトに渡された変数の連想配列とのことです。 Webサーバの種類が違えば「$_SERVER」の値が変わってくるでしょうし、OSの種類が違えば「$_ENV」の値が変わってくるというような捕らえ方でどうでしょうか。 また、PHPの設定項目「variables_order」についての説明もご覧ください。

参考URL:
http://www.php.net/manual/ja/ini.core.php#ini.variables-order

関連するQ&A

  • perlの%ENVについてです。

    perlの連想配列である%ENVがよくわかりません。 具体的にはいつ使うのか、また使い道は何なのか。 %ENVとはどのようなものなのかがわかりません。 どなたか教えていただけると幸いです。

    • ベストアンサー
    • Perl
  • $ENV{'HTTP_COOKIE'}について

    windowsサーバーのcgi(※)にて「$ENV{'HTTP_COOKIE'}」でcookieの値が正常に取得できてましたが、 linuxサーバーにそのソースをそのまま移行し、動作確認したところ「$ENV{'HTTP_COOKIE'}」でcookieの値が取得できなくなってしましました。 (※)・・・ショッピングカートの処理 ちなみにSSLを使用しているページです。 サーバーの環境は以下となります ■windowsサーバー ・OS : Windows 2003 R2 SP2 ・Perl ver : 5.8.7 ■linuxサーバー ・OS : Red Hat Enterprise Linux 4 ・Perl ver : 5.8.8 ・パーミッション : 757 ロジックは変更していないのでおそらくサーバーのどこかの設定を変更しなければならないのではないかと思われますが、どこに手を付けてよいのかがわかりませんので ご教授していただきたいです。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • シェバング行 envの意味

    perlとは直接関係ありませんが、シェバング行の意味が知りたいです。 #!/usr/bin/env ruby envの無い次のものはrubyを実行するという意味でわかりますが、 上のenvをつける理由が知りたいです。以下では駄目なのでしょうか? #!/usr/bin/ruby

    • ベストアンサー
    • Perl
  • $ENV{'HTTP_COOKIE'}について

    windowsサーバーのcgi(※)にて「$ENV{'HTTP_COOKIE'}」でcookieの値が正常に取得できてましたが、 linuxサーバーにそのソースをそのまま移行し、動作確認したところ「$ENV{'HTTP_COOKIE'}」でcookieの値が取得できなくなってしましました。 (※)・・・ショッピングカートの処理 ちなみにSSLを使用しているページです。 (1)画面A(http)から「カート入れる」ボタンをクリックし、画面B(https)に遷移 (2)画面Bに遷移した際にcookieに取得、保存 要するにhttpsでセットしたものをhttpsゲットしようとしています。 サーバーの環境は以下となります ■windowsサーバー ・OS : Windows 2003 R2 SP2 ・Perl ver : 5.8.7 ■linuxサーバー ・OS : Red Hat Enterprise Linux 4 ・Perl ver : 5.8.8 ・パーミッション : 757 ロジックは変更していないのでおそらくサーバーのどこかの設定を変更しなければならないのではないかと思われますが、どこに手を付けてよいのかがわかりませんので ご教授していただきたいです。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • $_ENV[OS]のキーはどうやって知るでしょうか。

    preg_match("/Windows/",$_ENV[OS])の$_ENV[ ]のキーであるOSはどこから来ているでしょうか。$_ENVはグローバル変数のため、[ ]の入っているキーも予め決まっていると思いますが、その解説してくれるサイトが見つかりません。 特に$_ENV[OS]のOSはどのOSに対応しているでしょうか。そのキーの中身(値)を知りたいですが、それも解説してくれるサイトが見つかりません。 また、グローバル変数のキーを解説してくれるサイトや本をご存知でしたら紹介していただけませんでしょうか。 さらに閲覧者はPCかケータイのどちらからアクセスしているのを判断するにも、preg_match("ケータイ",グローバル変数[使用機器])といったコードを使っていると思いますが、そういう解釈は正しいでしょうか。

    • ベストアンサー
    • PHP
  • envと「cd」の同時実行ができない

    [hoge@localhost ~]$ env TESTVAL=1 cd /home env: cd: そのようなファイルやディレクトリはありません 上記のエラーが発生します。 Envとcdは同時に実行できないのでしょうか?

  • サーバの違いについて

    サーバの事で質問です。 windows系サーバとかUNIX系サーバとか、 何か大きな違いや、借りる時注意しなければならない事ってあるのですか?

  • WebサーバーとFTPサーバーの関係と違いについて

    WebサーバーとFTPサーバーの違いは、使用するポートが制御用と 転送用で異なるのがFTPサーバーであることは、わかります。 その他にはあるでしょうか? また、両者の関係は、どういった関係になるのでしょうか? ファイルをアップロードやダウンロードするなどの具体例で お答え頂けると助かります。 あいまいな質問になりますが、よろしくお願いします。

  • $ENV{'REMOTE_HOST'}について

    CGIにて$ENV{'REMOTE_HOST'}を取得したところ スパム投稿なのですが、$ENV{'REMOTE_HOST'}が IPアドレスの値である142.54.182.186が入っていました。 普通はkd182249232116.au-net.ne.jp などという形になると思うのですが 142.54.182.186 となっていることが通常ありえるのでしょうか? リモートホストを取得し、IPアドレスの形式であった場合、 この投稿者を弾いてしまっても問題ありませんか?

    • ベストアンサー
    • CGI
  • $ENV{'REQUEST_URI'} の値を統一するには

    先ほど気がついたのですが $ENV{'REQUEST_URI'} が ローカルと サーバー上で 扱いが違うので 統一したいと思います 設定を変更をするにはどうすればいいのでしょうか? .../abc.cgi?a=1 だとすると ローカルでは ?より前が返ってきます。  .../abc.cgi サーバーでは ?以降もいっしょに返ってきます・・・  .../abc.cgi?a=1 値が違うので。。。 常に?以降を切り取るようにすればいいかもしれないですが...... 簡単に設定で済む方法があればよろしくお願いします

    • ベストアンサー
    • Perl

専門家に質問してみよう