php における getenv とサーバーの違い: 1. getenv はシステム環境変数を取得できます。構文は "string getenv(string varname)" で、"$_SERVER" はサーバーのスーパー グローバル変数配列です。 2. getenv IIS isapi モードで実行されている PHP はサポートされていませんが、「$_SERVER」はサポートされています。
この記事の動作環境: Windows 10 システム、PHP バージョン 8.1、Dell G3 コンピューター
PHP における getenv() と $_SERVER の使用法の違い:
getenv はシステム環境変数を取得し、環境変数の形式は name=value です。
構文:
string getenv(string varname);
戻り値: 文字列関数の種類: PHP システム関数
内容の説明
環境変数 varname が正しく取得された場合、変数が戻り値となり、失敗した場合は false を返します。
次の例では、ユーザーのブラウザが存在するマシンの URL を取得できます
$ip = getenv(“REMOTE_ADDR”); ?>
$_SERVER はサーバーのスーパー グローバル変数配列です。$_SERVER['REMOTE_ADDR'] を使用して取得することもできますクライアントの IP アドレス。
この 2 つの違いは、getenv が IIS isapi モードで実行される PHP をサポートしていないことです。
知識を広げる
PHP が IP アドレス`関数を取得できない問題の解決策getenv("REMOTE_ADDR")
$_SERVER['REMOTE_ADDR']
との違い 最近、PHP を使用して、友人が投票用のページを作成するのを手伝いました。すべてがスムーズに進みました。インストール後、次のことがわかりました。 IP アドレスがありません。記録できます (IP アドレスの取得に失敗しました)。これは奇妙なことです。ローカル テストはすべて問題ありませんでした。ローカル コンピューターがサーバーとは異なる可能性はありますか? すぐにスペースを開いてテストしてみましたが、すべて正常です。すべての問題のトラブルシューティングを行った結果、相手は Windows で IIS を実行していて、私自身のテストはすべて Apache で実行されていたことがわかりました。これがおそらく理由でした。
関数をすぐに置き換えます: 元の IP アドレス取得関数「getenv("REMOTE_ADDR")
」を「$_SERVER['REMOTE_ADDR']
」に置き換え、上書きします更新してデータベースを再度確認すると、IP アドレスが正常に記録され、完了しました。
この問題に再び遭遇したので、記録しましょう: 訪問者の IP アドレスを取得するための PHP の getenv("REMOTE_ADDR") と $_SERVER['REMOTE_ADDR'] の違い (*** 終了) . 実は今回の事件を通じて、それが非常に明らかになりました。 getenv("REMOTE_ADDR") 関数は Apache では正常に IP アドレスを取得できますが、iis ではまったく効果がありません。 $_SERVER['REMOTE_ADDR'] 関数は Apache では正常に訪問者の IP アドレスを取得できますが、iis では以下でも有効です。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHPのgetenvとserverの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。