Parse_urlは、PHPの組み込み関数であり、URLを解析し、プロトコル、ホスト名、パス、クエリ文字列などのコンポーネントを返します。
$url = "https://gitbox.net/path/to/file.php?query=123";
$parsedUrl = parse_url($url);
print_r($parsedUrl);
出力は連想配列になります。
Array
(
[scheme] => https
[host] => gitbox.net
[path] => /path/to/file.php
[query] => query=123
)
parse_urlを使用すると、URLのパスパーツを簡単に取得できます。
Pathinfoは、ファイルパス情報を解析するために使用される関数です。ディレクトリ名、ファイル名、ファイルの拡張子などの情報を返します。
上記の例を続けて、次のように使用できます。
$path = $parsedUrl['path']; // /path/to/file.php
$fileInfo = pathinfo($path);
print_r($fileInfo);
出力:
Array
(
[dirname] => /path/to
[basename] => file.php
[extension] => php
[filename] => file
)
これにより、ファイル名と拡張子、または私たちがいるディレクトリパスを簡単に取得できます。
Parse_urlとPathinfoを組み合わせて、URLのパスとファイル情報を抽出する方法を示す例を次に示します。
<?php
$url = "https://gitbox.net/path/to/file.php?query=123";
// 分析URL
$parsedUrl = parse_url($url);
// パス部分を取り出します
$path = isset($parsedUrl['path']) ? $parsedUrl['path'] : '';
// 使用pathinfo分析路径
$fileInfo = pathinfo($path);
// 出力結果
echo "完全なパス: " . $path . PHP_EOL;
echo "ディレクトリ名: " . ($fileInfo['dirname'] ?? '') . PHP_EOL;
echo "ファイル名: " . ($fileInfo['basename'] ?? '') . PHP_EOL;
echo "拡大: " . ($fileInfo['extension'] ?? '') . PHP_EOL;
echo "不带拡大的ファイル名: " . ($fileInfo['filename'] ?? '') . PHP_EOL;
実行結果:
完全なパス: /path/to/file.php
ディレクトリ名: /path/to
ファイル名: file.php
拡大: php
不带拡大的ファイル名: file
parse_urlは、プロトコル、ホスト、パス、クエリなどのURLを解析および抽出するために使用されます。
Pathinfoは、ファイルパスを解析し、ディレクトリ、ファイル名、拡張子などの情報を抽出するために使用されます。
合わせた使用は、パスの判断、ファイル処理、ルーティング分析、その他のシナリオに適したURL内のパスとファイル構造を簡単に分析できます。
これらの2つの機能を習得すると、URLとパス処理の効率と精度を大幅に向上させることができます。