ホームページ  >  記事  >  バックエンド開発  >  PHPのgetenvとserverの違いは何ですか

PHPのgetenvとserverの違いは何ですか

WBOY
WBOYオリジナル
2022-08-26 16:48:351572ブラウズ

php における getenv とサーバーの違い: 1. getenv はシステム環境変数を取得できます。構文は "string getenv(string varname)" で、"$_SERVER" はサーバーのスーパー グローバル変数配列です。 2. getenv IIS isapi モードで実行されている PHP はサポートされていませんが、「$_SERVER」はサポートされています。

PHPのgetenvとserverの違いは何ですか

この記事の動作環境: Windows 10 システム、PHP バージョン 8.1、Dell G3 コンピューター

getenv とサーバーの違いは何ですかin php

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。