ホームページ >バックエンド開発 >PHPの問題 >$_SERVER の遊び方を教えてください

$_SERVER の遊び方を教えてください

醉折花枝作酒筹
醉折花枝作酒筹オリジナル
2021-08-02 14:27:462226ブラウズ

前回の記事では、スーパーグローバル変数とは何か、$GLOBALSについて学習しましたが、必要に応じて「エディターが教えるPHPの変数$GLOBALS」も併せてお読みください。今回は $_SERVER を紹介しますので、必要に応じて参照してください。

この配列を理解するために、小さな栗を見てみましょう。

<?php 
echo $_SERVER[&#39;PHP_SELF&#39;];
echo "<br>";
echo $_SERVER[&#39;SERVER_NAME&#39;];
echo "<br>";
echo $_SERVER[&#39;HTTP_HOST&#39;];
echo "<br>";
echo $_SERVER[&#39;HTTP_REFERER&#39;];
echo "<br>";
echo $_SERVER[&#39;HTTP_USER_AGENT&#39;];
echo "<br>";
echo $_SERVER[&#39;SCRIPT_NAME&#39;];
?>

結果は

/try/demo_source/demo_global_server.php
www.runoob.com
www.runoob.com
https://www.runoob.com/try/showphp.php?filename=demo_global_server
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
/try/demo_source/demo_global_server.php

まず結果をざっと見てみると、どれも同じアドレスに見えますので、この配列は格納されている配列であると大胆に推測できます。情報を確認してみましょう。

$_SERVER は、ヘッダー情報 (header)、パス (path)、スクリプトの場所 (script location) などの情報を含む配列です。この配列内の項目は Web サーバーによって作成されます。すべてのサーバーがすべてのアイテムを提供するという保証はありません。サーバーは一部のアイテムを無視したり、ここにリストされていないアイテムを提供したりする可能性があります。

すべての $_SERVER 変数の重要な要素について話しましょう。

  • $_SERVER['PHP_SELF']、ドキュメント ルートに関連する、現在実行中のスクリプトのファイル名。たとえば、http://example.com/test.php/foo.bar のスクリプトで $_SERVER['PHP_SELF'] を使用すると、結果は /test になります。 .php/foo.bar。 __FILE__ 定数には、現在の (つまり、ファイルを含む) ファイルの絶対パスとファイル名が含まれます。 PHP バージョン 4.3.0 以降、PHP がコマンド ライン モードで実行されている場合、この変数にはスクリプト名が含まれます。この変数は以前のバージョンでは使用できません。

  • $_SERVER['GATEWAY_INTERFACE']、サーバーによって使用される CGI 仕様のバージョン (例: "CGI/1.1")。

  • $_SERVER['SERVER_ADDR']、スクリプトが現在実行されているサーバーの IP アドレス。

  • $_SERVER['SERVER_NAME']、スクリプトが現在実行されているサーバーのホスト名。スクリプトが仮想ホスト上で実行されている場合、名前はその仮想ホストに設定された値によって決まります。

  • $_SERVER['SERVER_SOFTWARE']、サーバー識別文字列。リクエストに応答するときにヘッダー情報で指定されます。 (例: Apache/2.2.24)

  • $_SERVER['SERVER_PROTOCOL']、ページをリクエストするときの通信プロトコルの名前とバージョン。たとえば、「HTTP/1.0」です。

  • $_SERVER['REQUEST_METHOD']、ページへのアクセスに使用されるリクエスト メソッド (例: "GET"、"HEAD"、"POST"、"PUT")。

  • $_SERVER['REQUEST_TIME']、リクエストが開始されたときのタイムスタンプ。 PHP 5.1.0 以降で利用可能です。 (例: 1377687496)

  • $_SERVER['QUERY_STRING']、クエリ文字列 (クエリ文字列) (存在する場合)、ページ アクセスはそれを通じて実行されます。

  • $_SERVER['HTTP_ACCEPT']、現在のリクエスト ヘッダー内の Accept: 項目の内容 (存在する場合)。

  • $_SERVER['HTTP_ACCEPT_CHARSET']、現在のリクエスト ヘッダー内の Accept-Charset: 項目の内容 (存在する場合)。例: 「iso-8859-1,*,utf-8」。

  • $_SERVER['HTTP_HOST']、現在のリクエスト ヘッダー内の Host: 項目の内容 (存在する場合)。

  • $_SERVER['HTTP_REFERER'] は、ユーザー エージェントを現在のページの前のページのアドレス (存在する場合) に誘導します。 ユーザー エージェント設定によって決定されます。すべてのユーザーエージェントがこの項目を設定するわけではなく、HTTP_REFERER を変更する機能を提供するものもあります。要するに、その値は信頼できません。 )

  • $_SERVER['HTTPS'] は、スクリプトが HTTPS プロトコル経由でアクセスされる場合、空ではない値に設定されます。

  • $_SERVER['REMOTE_ADDR']、現在のページを閲覧しているユーザーの IP アドレス。

  • $_SERVER['REMOTE_HOST']、現在のページを閲覧しているユーザーのホスト名。 DNS 逆引き解決は、ユーザーの REMOTE_ADDR には依存しません。

  • $_SERVER['REMOTE_PORT']、Web サーバーに接続するためにユーザーのマシンで使用されるポート番号。

  • $_SERVER['SCRIPT_FILENAME']、現在実行中のスクリプトの絶対パス。

  • $_SERVER['SERVER_ADMIN']、この値は、Apache サーバー構成ファイルの SERVER_ADMIN パラメーターを指定します。スクリプトが仮想ホスト上で実行されている場合、この値はその仮想ホストの値になります。

  • $_SERVER['SERVER_PORT']、Web サーバーによって使用されるポート。デフォルト値は「80」です。 SSL セキュア接続を使用する場合、この値はユーザーが設定した HTTP ポートです。

  • $_SERVER['SERVER_SIGNATURE']、サーバーのバージョンと仮想ホスト名を含む文字列。

  • $_SERVER['PATH_TRANSLATED']、現在のスクリプトが配置されているファイル システムのベース パス (ドキュメント ルート ディレクトリではありません)。これは、サーバーが仮想パスから実際のパスにイメージ化された後の結果です。

  • $_SERVER['SCRIPT_NAME'] には、現在のスクリプトのパスが含まれます。これは、ページがそれ自体を指す必要がある場合に便利です。 __FILE__ 定数には、現在のスクリプト (つまり、インクルード ファイル) の完全なパスとファイル名が含まれます。

  • $_SERVER['SCRIPT_URI']、URI はアクセスするページを指定するために使用されます。たとえば、「/index.html」です。

これですべてです。他に知りたいことがある場合は、ここをクリックしてください。 → →phpビデオチュートリアル

以上が$_SERVER の遊び方を教えてくださいの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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