PHPのparse_strでURLパラメータを分解して取得

  • このエントリーをはてなブックマークに追加
  • Pocket

スポンサードリンク

PHPでは、URLのパラメータを分解して取得できる便利な関数があります。

parse_url()を使えば、Amazonのような&(アンド)で繋がれた長いURLパラメータも項目ごとに取得できて便利です。

 

parse_url関数

文字列を処理して変数に代入します。

以下のようなURLがあるとして?(クエスチョンマーク)以降のパラメータを分割してみます。

http://www.flatflag.nir87.com?source=google&user_id=testuser

URLパラメータを分割して取得

それではURLパラメータを取得してみましょう。

 

google
testuser

上記のようにURLパラメータの値を分割して出力できました。

これは便利ですね。

ただ、パラメータの項目名がそのまま変数名となってしまうため、セキュリティ的に怖いですね。

URLパラメータを配列で取得

上記では、URLに記述されているパラメータがそのまま変数名となりましたが、独自の変数名を付けた配列で取得できます。

こちらの方法がいいでしょう。

google
testuser

結果は先ほどと同じでしたが、独自の変数名を付けた配列で出力しているので、より安全ですね。

parse_str関数の構文

parse_str ( 分解対象のパラメータ [ , 配列の変数名 ]([ ]は省略可));

第二引数の配列の変数名を指定するかしないかで、以下のようになります。

  1. 第二引数を省略した場合は文字列となり、変数名 = 値となる
    string(30) “source=google&user_id=testuser”
  2. 第二引数を指定した場合は配列となり、キー=>値となる
    array(2) { [“source”]=> string(6) “google” [“user_id”]=> string(8) “testuser” }

スポンサードリンク

  • このエントリーをはてなブックマークに追加
  • Pocket

コメントを残す

*