PHP を使って Web アプリケーションを開発する場合、PHP のヘッダー関数を使用してページにジャンプし、パラメーターを転送することがよくあります。ページにジャンプするのは非常に簡単で、次のステートメントを PHP コードに追加するだけです:
header('Location: http://www.example.com');
これにより、ブラウザは自動的に http://www.example というページにジャンプします。 com に準拠しているので、ユーザーを希望のページへ誘導し、ページジャンプを実現します。
しかし、ジャンプ時にいくつかのパラメーターを同時に渡したい場合はどうすればよいでしょうか?これには、HTTP プロトコルで GET メソッドと POST メソッドを使用する必要があります。
パラメータを渡すときは、GET メソッドを使用してパラメータを URL に追加するか、POST メソッドを使用してパラメータをサーバーに渡すことができます。
GET メソッドでパラメーターを渡す方法は次のとおりです:
header('Location: http://www.example.com?param1=value1¶m2=value2');
URL の後に ? 記号を追加し、複数のパラメーターを & 記号で区切ります。各パラメーターにはキーを使用できます。 = 値の形式で渡されます。たとえば、上記のコードでは、param1 と param2 という 2 つのパラメータを追加し、それぞれ値 1 と value2 が割り当てられています。
POST メソッドを通じてパラメータを渡す方法は次のとおりです:
$params = array('param1' => 'value1', 'param2' => 'value2'); header('Location: http://www.example.com', true, 307); echo "<form id='postForm' action='http://www.example.com' method='post'>"; foreach ($params as $key => $value) { echo "<input type='hidden' name='$key' value='$value' />"; } echo "</form>"; echo "<script>document.getElementById('postForm').submit();</script>";
このメソッドはより複雑で、HTML フォームを通じて実装する必要がありますが、より多くのパラメータの内容とパラメータ値が必要になります。渡すことができます。このメソッドでは、まず、渡す必要があるパラメータを格納する配列 $params を定義し、次に HTML フォームを通じてこれらのパラメータをターゲット アドレスに送信して、パラメータの転送を完了します。ステータス コードが 307 を正しく返すようにするには、ヘッダー関数の 2 番目のパラメーター (true) を設定する必要があることに注意してください。このステータス コードは一時的なリダイレクトであり、現在のリクエストが POST リクエストであり、クライアントを新しいアドレスにリダイレクトする必要があることを示します。
もちろん、配列やオブジェクトを渡すなど、より複雑なパラメータを渡すこともできます。このとき、パラメータをシリアル化して渡す必要があります。例:
$data = array('name' => 'Tom', 'age' => 20); $params = http_build_query(array('data' => serialize($data))); header('Location: http://www.example.com?' . $params);
このコードでは、まずシリアル化関数 Serialize を使用して配列 $data を文字列に変換し、次に http_build_query 関数を使用して文字列をエンコードし、それを URL に結合して、パラメータの転送。ターゲット URL では、クエリ文字列を使用してパラメータを読み取り、それらを逆シリアル化するだけで済みます。
つまり、PHP のヘッダー関数には、非常に便利なページ ジャンプ機能とパラメーター受け渡し機能が備わっており、PHP コードに必要なパラメーターを追加するだけで、効率的な Web アプリケーションを実装できます。
以上がPHPヘッダーにジャンプとパラメータを渡す方法を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。