勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

PHPでURLを解析してクエリ(GETパラメータ)を抽出する方法

   2024/02/25  PHP

formからGETで送信したクエリ(パラメータ)を、受信した側で抽出し、キーと値をそのまま連想配列に代入したかった。例えば「?param=1&name=hoge」の場合は「key:param / value:1」「key:name / value:hoge」のような形で抽出したい。以下にその方法のメモ。

 

ソース

<?php
if( !$_GET['url'] ){
    echo 'empty url';
    exit();
}
$query_array = array();
$query_string = (parse_url($_GET['url'], PHP_URL_QUERY)); //URLを解析してクエリパラメータを抽出
parse_str($query_string, $query_array); //文字列を処理し、変数に代入

var_dump($query_array);

parse_urlでURLを解析してクエリパラメータを抽出、parse_strで文字列を処理し変数に代入という形になる。

 

テストしたURLと結果

http://hoge.com/hoge.php?name=名前&pass=kmsdkafd&id=516516

というURLをテストで送信した。var_dumpの結果は以下の通り。

array(3) {
  ["name"]=>
  string(4) "名前"
  ["pass"]=>
  string(8) "kmsdkafd"
  ["id"]=>
  string(6) "516516"
}

 - PHP

  関連記事

LeagueCSVで「The header record must be empty~~」エラーが発生する原因と対応方法
LeagueCSVで「The header record must be empty~~」エラーが発生する原因と対応方法

以前にメモしたPHPのLeagueCSV(thephpleague / csv) ...

PHPとLINEを連携させて通知を送る方法(file_get_contents / curlの2パターン)
PHPとLINEを連携させて通知を送る方法(file_get_contents / curlの2パターン)

PHPとLINEを連携させ、LINEに何らかの通知メッセージを送信したい。以下に ...

PDFファイルを直接リンクさせずにPHP経由で表示もしくはダウンロードさせる方法
PDFファイルを直接リンクさせずにPHP経由で表示もしくはダウンロードさせる方法

セキュリティ等の問題によりaタグで直接リンクさせたくない、もしくはドキュメントル ...

imgタグのsrc属性のURLにPHPでタイムスタンプを付与しキャッシュ対策する方法
imgタグのsrc属性のURLにPHPでタイムスタンプを付与しキャッシュ対策する方法

imgタグで画像を表示する際、画像を書き換えても同じものが表示されるというケース ...

PHPでファイルアップロード時にディレクトリトラバーサル攻撃の対策をする方法
PHPでファイルアップロード時にディレクトリトラバーサル攻撃の対策をする方法

あるシステムのセキュリティ対策としてディレクトリトラバーサル(Directory ...