php parse_strでURLパラメータを個別に取得する

  • 作成日 2021.10.23
  • php
php parse_strでURLパラメータを個別に取得する

phpで、parse_strを使用して、URLパラメータを個別に取得するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Stream release 8
  • php 8.0.0
  • nginx 1.14.1

parse_str使い方

parse_strを使用すれば、URLパラメータを個別に取得することが可能です。

parse_str(文字列,保存する配列変数名);
// php8では保存する配列変数名は必須

以下は、URLパラメータを個別に取得するサンプルコードとなります。

<?php

$param = "name=mebee&customer_id=11111";

parse_str($param,$result); 

echo $result["name"];
// mebee
echo $result["customer_id"];
// 11111

php7.4.5で以下のコードをコードを実行しても、エラーは発生しませんが、php8ではエラーとなります。

<?php

$param = "name=mebee&customer_id=11111";

parse_str($param); 

echo $name;
// mebee
echo $customer_id;
// 11111

php8の場合は、以下のエラーとなります。

PHP Fatal error:  Uncaught ArgumentCountError: parse_str() expects exactly 2 arguments, 1 given in

以下のように、二次元配列として処理することも可能です。

<?php

$param = "name=mebee&arr[]=hoge&arr[]=foo";

parse_str($param,$result); 

print_r($result);

実行結果

<?php

$param = "name=mebee&arr[]=hoge&arr[]=foo";

parse_str($param,$result); 

print_r($result);