よく使うものなのに、いつまでとっても暗記できていないので、今後のためにメモがてら、PHPのparse_urlを使って、URLを分解してクエリをそれぞれ取得する方法をメモしておきます。パースするってやつですね。

parse_urlでまず書く部位ごとに分解する

サンプルとして以下urlを使ってみます。いろんな要素を入れた欲張りセットなurlです。

早速parse_urlで分離してみます。

$url='http://www.hoge.com:80/dir1/dir2/test.php?prm=aaa&sort=bbb';
$tmp=parse_url($url);
var_dump($tmp);

////以下、実行結果
array(5) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(12) "www.hoge.com"
  ["port"]=>
  int(80)
  ["path"]=>
  string(19) "/dir1/dir2/test.php"
  ["query"]=>
  string(16) "prm=aaa&sort=bbb"
}

次はクエリ部分をさらに分解する

最初の分解した部分の中にある「query」の中が今回取り出したいゴールなので、その部分をさらに以下のように分解してみます。

//$tmp["query"] を分解した結果を、$pairsにいれる
parse_str($tmp["query"], $pairs);

var_dump($pairs);

////実行結果
array(2) {
  ["prm"]=>
  string(3) "aaa"
  ["sort"]=>
  string(3) "bbb"
}

これで各パラメータのデータを取り出すことができました。

ひとまずここまで

コメント