PHPの事前定義された変数
はじめに
すべてのPHPスクリプトは、いくつかの事前定義された変数にアクセスできます。ただし、それらの多くは、Webサーバーソフトウェア、PHPバージョン、およびその他の要因に依存しています。これらの変数の一部は、コマンドラインモードで実行されているスクリプトでは使用できません。 $ GLOBALS変数は、グローバルに使用可能なすべての事前定義変数の参照を格納します。これらの変数のほとんどはphpinfo.phpによって表示されます。ここでは、一般的に使用される事前定義変数のいくつかについて説明します。
$ _ SERVER
これは、HTTPヘッダー、スクリプト、および環境に関する情報を含む配列変数です。以下は、このアレイの著名なメンバーの一部です
PHP_SELF −現在実行中のスクリプトのファイル名を保存します。たとえば、ローカルサーバーのドキュメントルートのテストフォルダにあるスクリプトは、次のようにパスを返します-
例
<?php echo $_SERVER['PHP_SELF']; ?>
出力
これにより、http://localhost/test/testscript.php URL
を使用してブラウザに次の出力が表示されます。/test/testscript.php
SERVER_ADDR −配列のこのプロパティは、現在のスクリプトが実行されているサーバーのIPアドレスを返します。
SERVER_NAME −現在のスクリプトが実行されているサーバーホストの名前。ローカルで実行されているサーバーの場合、 localhost 返されます
QUERY_STRING −クエリ文字列は、キーと値のペアの文字列で、&記号で区切られ、?の後にURLに追加されます。シンボル。例: http:// localhost / testscript?name =xyz&age =20 URLは末尾のクエリ文字列を返します
REQUEST_METHOD − POST、GET、POST、PUT、DELETEなどのURLへのアクセスに使用されるHTTPリクエストメソッド。上記のクエリ文字列の例では、クエリ文字列に添付されたURLは? symbolはGETメソッドでページを要求します
DOCUMENT_ROOT −ドキュメントルートとして設定されているサーバー上のディレクトリの名前を返します。 XAMPP Apacheサーバーでは、ドキュメントルートの名前としてhtdocsを返します
C:/xampp/htdocs
DOCUMENT_ROOT −これは、ページにアクセスしているユーザーエージェント(ブラウザ)を示す文字列です。
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
REMOTE_ADDR −ユーザーが現在のページを表示しているマシンのIPアドレス。
SERVER_PORT −Webサーバーが着信要求をリッスンしているポート番号。デフォルトは80です
$ _ GET
デフォルトでは、クライアントブラウザはHTTPGETメソッドによってサーバー上のURLの要求を送信します。 URLに添付されたクエリ文字列には、&記号で連結されたキーと値のペアが含まれる場合があります。 $ _GET連想配列は、これらのキーと値のペアを格納します
ブラウザのURLがhttp:// localhost / testscript?name =xyz&age =20であると仮定します
例
<?php echo "Name : " . $_GET["name"] . "<br>"; echo "Age : " . $_GET["age"]; ?>
出力
これにより、次の結果が生成されます-
Name : xyz Age : 20
$ _ POST
リクエストでURLEncodedまたはmultipart/form-datacontent-typeを使用するHTTPPOSTメソッドによってURLに渡されるキーと値のペアの連想配列。
データは、以下のようにHTMLフォームtest.htmlでaction =POSTを指定することにより、POSTメソッドを使用してPHPスクリプトに送信されます-
<form action="testscript.php" method="POST"> <input type="text" name="name"> <input type="text" name="age"> <input type ="submit" valaue="submit"> </form>
PHPスクリプトは次のとおりです-
例
<?php echo "Name : " . $_POST["name"] . "<br>"; echo "Age : " . $_POST["age"]; ?>
出力
これにより、次の結果が生成されます-
Name : xyz Age : 20
$ _ FILES
この変数は、HTTPPOSTメソッドを介してアップロードされたアイテムを含む連想配列です。ファイルをアップロードするには、enctype属性がmultipart/form-dataに設定されたHTTPPOSTメソッドフォームが必要です。
<form action="testscript.php" method="POST" enctype="multipart/form-data"> <input type="file" name="file"> <input type ="submit" valaue="submit"> </form>
PHPスクリプトでは、_FILES変数は次のようにアクセスされます-
例
<?php print_r($_FILES); ?>
出力
Array ( [file] => Array ( [name] => hello.html [type] => text/html [tmp_name] => C:\xampp\tmp\php9647.tmp [error] => 0 [size] => 56 ) )
$ _ REQUEST
この変数は、$ _ GET、$ _ POST、および$_COOKIEの事前定義された変数の内容を提供する連想配列です。
$ _ SESSION
この変数は、HTTPセッションを表す変数の連想配列です。
$ _ ENV
環境変数の配列は、この事前定義された変数を形成します。これらの変数は、PHPのグローバル名前空間にインポートされます。
$ _ COOKIE
サーバーは、特定のデータをCookieの形式でクライアントのコンピューターに保存できます。これらのCookieは、リクエストが行われるたびに送信されます。 _COOKIE変数は、Cookie変数とその値の連想配列です。
-
PHPのextract()関数
extract()関数は、変数を配列から現在のシンボルテーブルにインポートします。正常に抽出された変数の数を返します。 構文 extract(arr, rules, prefix) パラメータ 到着 −指定された配列 ルール −無効な変数名の処理方法を指定します。可能な値は次のとおりです- EXTR_OVERWRITE −デフォルト。衝突すると、既存の変数が上書きされます EXTR_SKIP −衝突時に、既存の変数は上書きされません EXTR_PREFIX_SAME −衝突時に、変数名にプレフィックスが付けられます EXTR_PREFIX_
-
JavaScript変数をPHPに渡す方法は?
PHPの同じページでJavaScript変数値を簡単に取得できます。次のコードを試してください。 <script> var res = "success"; </script> <?php echo "<script>document.writeln(res);</script>"; ?>