現在の位置: ホーム> 最新記事一覧> parse_urlとbasenameを使用してファイル名を取得します

parse_urlとbasenameを使用してファイル名を取得します

gitbox 2025-05-26

毎日の開発では、プロトコル、ホスト名、パス、またはクエリパラメーターなど、URLを解析するためにURLを解析する必要があります。いくつかのシナリオでは、URLのパス部分に含まれる「ファイル名」のみを気にする場合があります。

PHPでは、組み込みのparse_url関数を使用してURLをさまざまな部分に分割し、 Basename関数を組み合わせてパスから必要なファイル名を抽出できます。この記事では、このプロセスを例と組み合わせて実装する方法について説明します。

1。Parse_urlの紹介

parse_urlは、phpがparsing urlsに提供する関数です。次の可能なキーを含む連想配列を返します。

  • スキーム:HTTP、HTTPSなど

  • ホスト:ホスト名

  • ポート:ポート番号

  • ユーザー:ユーザー名

  • パス:パスワード

  • パス:パスパーツ

  • クエリ:クエリ文字列

  • フラグメント:アンカーポイント

基本的な使用法は次のとおりです。

 $url = "https://www.gitbox.net/images/photo.jpg?size=large";
$parts = parse_url($url);
print_r($parts);

出力の結果は次のとおりです。

 Array
(
    [scheme] => https
    [host] => www.gitbox.net
    [path] => /images/photo.jpg
    [query] => size=large
)

2。ベースネーム関数はファイル名を抽出します

PHPのBasename関数は、パスから最後のレベルファイル名を抽出できます。例えば:

 $path = "/images/photo.jpg";
$filename = basename($path); // 結果は次のとおりです "photo.jpg"

3. Parse_urlとBasenameを組み合わせて使用​​します

最初にparse_urlを使用してURL内のパスを抽出し、次にBasenameを介してファイル名を取得できます。これが完全なサンプルコードです:

 function extractFilenameFromUrl($url) {
    $parts = parse_url($url);

    if (!isset($parts['path'])) {
        return null; // そうでない場合 path,ファイル名を抽出できません
    }

    return basename($parts['path']);
}

// 例
$url = "https://cdn.gitbox.net/assets/docs/manual.pdf?download=true";
$filename = extractFilenameFromUrl($url);
echo "抽出されたファイル名はです:$filename"; // 出力: 抽出されたファイル名はです:manual.pdf

4.ファイル名がない、またはパスが空の状況を処理する

着信URLには、次のようなファイル名が指定されていない場合があります。