0


0

タイトルが明確ではないことを私は知っています。 私はPHPに慣れていないので、この種のことに名前があるかもしれません。できるだけ私ができる限り説明しようと思います。 URLを使用しているときにPHPを使用すると、疑問符が表示され、その後にデータが表示されることがあります。 すみません、私はこれが非常に不快であることを知っています、しかし私はそれがチュートリアルか何かを探すために何を呼ばれるかわからない。 これが私の言っていることです:

数字が何であるかに応じて異なるテキストを表示するようにどのように設定しますか(この例では数字です)。

誰かがこれが何と呼ばれているのか、どうすればこれを実行できるのかを教えてもらえますか。 私は数日間PHPを使ってきましたが、私は迷子になりました。 理解してくれて本当にありがとうございます。

7 Answer


6


その "data"はURL クエリ文字列*であり、それはそのHTTPリクエストの GET変数*をエンコードします。

これはクエリ文字列についての詳細な情報です:http://en.wikipedia.org/wiki/Query_string

PHPでは、これらに `$ _GET`"スーパーグローバル "変数を使ってアクセスします。

// http://www.website.com/error%5Fmessages.php?error%5Fid=0
// %5F is a urlencoded '_' character, which your webserver will most likely
// decode before it gets to PHP.
// So ?error%5Fid=0 reaches PHP as the 'error_id' GET variable
$error_id = $_GET['error_id'];
echo $error_id; // this will be 0

クエリ文字列は、複数のGET変数を* `で区切ってエンコードできます。 例えば:

_ ?error_id = 0&error_message = Something%20bad%20happened _

  • error_id ⇒" 0 "

  • error_message ⇒"なにか悪いことが起こった "

その例では、スペースが `%20`としてエンコードされていることもわかります。

これが "パーセントエンコーディング"についてのより詳しい情報です:http://en.wikipedia.org/wiki/Percent-encoding


2


疑問符の後のデータは「クエリ文字列」と呼ばれます。 通常、次の形式のデータが含まれています。

param1 = value1

つまり、キーと値のペアのリストで、各ペアはアンパサンド文字で区切ります( 値に特殊文字を渡すには、URLエンコード形式を使用してエンコードする必要があります。パーセント記号(%)の後に、文字コードを表す2つの16進文字を使用します。

PHPでは、クエリ文字列を介して渡されたパラメータは、スーパーグローバル変数 `$ _GET`を使って自動的にスクリプトに伝播されます。

echo $ _GET ['param1']; //上記の例では// "value1"が生成されます。

生の未処理のクエリ文字列は `QUERY_STRING`サーバ変数で取得できます。

echo $ _SERVER ['QUERY_STRING'];


1


これはクエリ文字列と呼ばれます。

例えば:


URLに追加するためのクエリ文字列を作成したい場合は、 http_build_query()を使用できます。

$ str = http_build_query(array( 'hello' => 'world'));


1


前述のように、 `?`の後のデータはクエリ文字列(またはGETデータ)であり、 `$ _GET`変数を使ってアクセスされます。 `$ _GET`変数はクエリ文字列の中にname = valueの組を含む配列です。

これは `$ _GET`の簡単な説明とその使用例です:

データはPOSTデータ( `$ _POST`変数にある)としてPHPスクリプトにサブミットすることもできます。これはパスワードなどに使用され、URLには保存されません。 `$ _REQUEST`変数はPOSTとGETの両方のデータを含みます。 POSTおよびGETデータは通常、ユーザーによってWebフォームに入力されることから発生します(ただし、GETデータは、あなたの例のように、アドレスへのリンクから直接来ることもできます)。 PHPでWebフォームを使用する方法についての詳細はこちらにあります。


0


その呼ばれる "クエリ文字列"

そしてあなたはそれを$ _SERVER ["QUERY_STRING"]を介して検索することができます

または$ _GETをループすることもできます

この場合error_id、あなたはこのような何かでそれをチェックすることができます

echo $ _GET ['error_id'];


0


あなたが探している用語はGETです。 そのため、phpでは$ _GET ['variable_name']のGET変数にアクセスする必要があります。 例では、$ _ GET ['error_id']には値0が含まれます。 これをロジックに使用して、さまざまな情報をエコーバックすることができます。


0


疑問符の後のビットは Query Stringと呼ばれます。 フォーマットは、必ずしもそうとは限りませんが、通常、キーと値のペアで、ペアはアンパサンドで区切ります ほとんどのWebプログラミング環境では、この形式の名前と値のペアに簡単にアクセスできます。 例えば、PHPには superglobalがあります。これはこれらのキーと値のペアの連想配列です。 あなたの例では、error_idは以下を通してアクセス可能です。

$ _GET ['error_id']

"GET"という名前の理由は、クエリ文字列変数は通常HTTP GETリクエストに関連付けられているためです。 POSTリクエストにもGET変数を含めることができますが、GETリクエストにはPOST変数を含めることはできません。

あなたの質問の残りの部分に関しては、いくつかの方法でテキストの問題に取り組むことができます、最も簡単なのはエラーIDをオンにすることです:

$ error_id = isset($ _ GET ['error_id'])? $ _GET ['error_id']:0; switch($ error_id){ケース1: "Error 1"をエコー;ブレーク;デフォルト値:echo "Unknown Error";ブレーク; }

そしてより複雑な方法はファイル、データベースあるいはあなたが持っているものからエラーメッセージを調べることを含みます。