UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#213 URLからフォルダ名と位置を取得する関数

記入日:2023-08-09 編集日:2023-08-09

URLからフォルダ名と位置を取得する関数について解説をしてみようと思います。

この記事を読むと(約5分)
URLからフォルダ名と位置を取得する関数についてイメージできます。

URLからフォルダ名と位置を取得する関数

function getFolderNamesWithIndices($url) {
  // URLを解析
  $parsedURL = parse_url($url);

  // パス部分を取得
  $path = isset($parsedURL['path']) ? $parsedURL['path'] : '';

  // パスをスラッシュで分割
  $pathParts = explode('/', $path);

  // 空のフォルダ名を排除
  $folderNames = array_filter($pathParts, function($part) {
      return !empty($part);
  });

  // フォルダ名とその位置を格納する連想配列を初期化
  $folderNamesWithIndices = [];

  // 各フォルダ名と位置を連想配列に格納
  foreach ($folderNames as $index => $folderName) {
    $folderNamesWithIndices[$folderName] = $index;
  }

  // フォルダ名と位置の連想配列を返す
  return $folderNamesWithIndices;
}

// テスト
$url = "https://example.com/path/to/folder/subfolder/";
$folderNamesWithIndices = getFolderNamesWithIndices($url);

foreach ($folderNamesWithIndices as $folderName => $index) {
  echo "フォルダ名: $folderName, 位置: $index\n";
}
// 出力:
// フォルダ名: path, 位置: 0
// フォルダ名: to, 位置: 1
// フォルダ名: folder, 位置: 2
// フォルダ名: subfolder, 位置: 3

このコードは、与えられたURLからフォルダ名とその位置(インデックス)を取得し、それを連想配列として返す関数を定義し、その関数をテストするためのコードです。

具体的には、以下のような手順で動作します:

  1. getFolderNamesWithIndices 関数が定義されています。この関数は、URLを受け取ります。
  2. 渡されたURLを parse_url 関数を使って解析し、パス部分を取得します。
  3. 取得したパスをスラッシュ / で分割し、フォルダ名を格納した配列 pathParts を作成します。この時、空のフォルダ名は排除されます。
  4. 各フォルダ名を含む配列 pathParts をループで処理し、フォルダ名をキー、位置(インデックス)を値とした連想配列 folderNamesWithIndices を作成します。
  5. 最終的に、この連想配列 folderNamesWithIndices を返します。

上記のコードは、与えられたテスト用のURL "https://example.com/path/to/folder/subfolder/" を使用して関数を呼び出し、その結果をテストする部分も含まれています。このテストの結果、連想配列 folderNamesWithIndices には各フォルダ名とその位置が格納され、その内容がループで出力されます。

これは、URLに含まれるパス情報を効果的に解析して、特定の処理を行うために必要な情報を抽出する場合に役立ちます。例えば、ウェブアプリケーション内で特定のURLを操作する場合や、URLをベースにしたファイルパスを生成する場合などで利用されます。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。