PHPでURLのqueryの配列を作りたい時にはexplode関数を使えば良い感じになる

タイトルの通りなのですが、phpのURLのqueryの配列を作りたい場合は、explode関数を使えば良い感じにできます。

PHP: explode – Manual

explode関数は、第二引数で指定した文字列を、第一引数で指定した文字列で区切ったものを配列として返す関数。実際に、以下の例を見ると分かりやすい。

<?php
$query = "qa/question_detail/q12160188612";
$array = explode("/", $query);
var_dump($array);
?>

結果は、以下の通り。第一引数に指定した/毎に第二引数が分割されて、戻り値として配列が返されているのが分かる。

array(3) {
[0]=>
string(2) "qa"
[1]=>
string(15) "question_detail"
[2]=>
string(12) "q12160188612"
}

explodeは実践ではどのように使えば良いか?

php-crud-api/Request.php at master · mevdschee/php-crud-api」と言う割とスターが多いOSSがあるが、このソースコード内には以下の様に使われていた。

    private function parsePath(String $path = null)
{
if (!$path) {
if (isset($_SERVER['PATH_INFO'])) {
$path = $_SERVER['PATH_INFO'];
} else {
$path = '/';
}
}
$this->path = $path;
$this->pathSegments = explode('/', $path);
}

$_SERVER['PATH_INFO']でリクエストとして送られてきたpathを$path変数に格納して、その後にexplode('/', $path)と言う感じで使っている。

ReratedPosts

PHPでob_startの使い方とか使い道とか
phpの__autoload関数とかspl_autoload_registerについて理解したのでまとめておく
PHPで色々な所で使える便利な関数25選
Ubuntu18.04.1にphpbrew+php7.2+apache2+MySQL5.7の開発環境を整える方法
PHPでスクレイピングの高速化にはfile_get_contensよりもcurlの方が良いよって話
PHPのissetとis_null、emptyの違いや関係を調べてみる