PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPでURL文字列からパラメータ(クエリ文字列)を取得する方法

PHPでは、URLに含まれるパラメータ(クエリ文字列)を取得するために、parse_url() 関数と parse_str() 関数を組み合わせて使用します。parse_url() でURLの各構成要素を分解し、その中から query 要素を取り出して、parse_str() で連想配列として解析するのが基本的な流れです。

処理の流れ

まず、parse_url() を使ってURLを解析します。この関数は、スキーム・ホスト・パス・クエリなどの各要素を連想配列として返します。次に、返された配列の 'query' キーから「name=demo&email=example12@domain.com」のようなクエリ文字列を取得し、それを parse_str() の第2引数に渡すことで、パラメータ名をキーとした連想配列が生成されます。あとは通常の配列と同じように値へアクセスできます。

例1:email パラメータを取得する

<?php
    $url = 'https://www.example.com/register?name=demo&email=example12@domain.com';
    $res = parse_url($url);
    parse_str($res['query'], $params);
    echo 'Email = ' . $params['email'];
?>

実行結果

Email = example12@domain.com

例2:name パラメータを取得する

同様の手順で、他のパラメータも自由に取得できます。たとえば name パラメータを表示するコードは以下のとおりです。

<?php
    $url = 'https://www.example.com/register?name=demo&email=example12@domain.com';
    $res = parse_url($url);
    parse_str($res['query'], $params);
    echo 'Name = ' . $params['name'];
?>

実行結果

Name = demo

補足:全パラメータの一覧を確認する

すべてのパラメータを一度に確認したい場合は、var_dump()print_r() を使うと便利です。

<?php
    $url = 'https://www.example.com/register?name=demo&email=example12@domain.com';
    $res = parse_url($url);
    parse_str($res['query'], $params);
    print_r($params);
?>

これにより、以下のように全パラメータが出力されます。

Array
(
    [name] => demo
    [email] => example12@domain.com
)

まとめ

  • parse_url():URL全体を解析し、クエリ部分を含む各要素を配列として返す
  • parse_str():クエリ文字列を解析し、パラメータ名をキーとした連想配列に変換する
  • 両者を組み合わせることで、URL文字列から任意のパラメータを簡単に抽出できる

現在アクセスされているページのURLからパラメータを取得したい場合は、代わりにスーパーグローバル変数である $_GET を使う方法もあります。状況に応じて使い分けるとよいでしょう。

  1. AndroidアプリでURLからビットマップ(Bitmap)を取得する方法を解説

    はじめにこの記事では、Androidアプリで指定したURLからビットマップ画像を取得して画面に表示する方法を、サンプルコードとともに段階的に解説します。ネットワーク上の画像を取得する処理は、AsyncTaskを使ってバックグラウンドで実行するのがポイントです。手順1:新しいプロジェクトを作成するまず、Android Studioを開き、「File」→「New Project」を選択して、必要な情報を入力し、新しいプロジェクトを作成します。手順2:レイアウトファイル(activity_main.xml)を編集する次に、res/layout/activity_main.xmlに以下のコードを追加し

  2. Python 3のtkinterでファイルダイアログから文字列(ファイルパス)を取得する方法

    tkinterアプリケーションでファイルシステムを操作したい場合には、filedialogモジュールを利用します。このモジュールは、システム上のファイルを扱うための仕組みを提供しており、さまざまな種類のファイルダイアログを簡単に作成できる組み込み関数を多数備えています。用途に応じて任意のfiledialog関数を選択し、アプリケーションに組み込むことが可能です。中でも最もよく使われているのがfiledialog.askopenfilename()です。この関数を呼び出すと、ユーザーにファイルを開かせるためのダイアログが表示され、選択されたファイルのパスを文字列として受け取ることができます。サン