PHPアプリケーションを開発する場合、クラスを自動的にロードするか、機能モジュールを導入するための複数のインクルードパスを構成する場合があります。 PHPは、get_include_path()関数を提供して、現在のスクリプトの含まれたパスのリストを取得します。これは通常、コロン(Windows a Semicolon)で区切られています。場合によっては、ロギング、構成管理、パス比較ピア操作など、処理のためにこれらのパスから各パスに対応するディレクトリ名または最終ファイル名を抽出する場合があります。
この時点で、 Basename()関数は役立ちます。パスの残りの部分を無視して、フルパスからファイル名の部分を抽出できます。
以下は、basename()関数を使用してget_include_path( )関数を使用する方法を示すための実用的な例です。
<?php
// 現在のパスを含む電流を取得します
$include_path = get_include_path();
// システムのパスセパレーターに従って分割します
$paths = explode(PATH_SEPARATOR, $include_path);
// 各パスを通過します,使用basename()ディレクトリ名を取得します
foreach ($paths as $path) {
$directoryName = basename($path);
echo "パス:$path\n";
echo "抽出されたディレクトリ名:$directoryName\n";
echo "-----------------------------\n";
}
?>
current include_pathは次のとおりです。
.:/var/www/html/lib:/usr/share/php:/home/user/projects/gitbox
上記のスクリプトを実行すると、出力が出力されます。
パス:.
抽出されたディレクトリ名:.
-----------------------------
パス:/var/www/html/lib
抽出されたディレクトリ名:lib
-----------------------------
パス:/usr/share/php
抽出されたディレクトリ名:php
-----------------------------
パス:/home/user/projects/gitbox
抽出されたディレクトリ名:gitbox
-----------------------------
自動ローダーのデバッグ: AutoLoADメカニズムを使用する場合、デバッガーは、Basename()を使用して迅速に実装できるパスの最後のレベルディレクトリを出力する必要があります。
構成ファイルの場所:一部のシステムでは、構成ファイルが含まれているパスに基づいて配置されているディレクトリを見つけます。 Basename()と組み合わせて、ディレクトリ名を抽出してモジュールソースを識別できます。
パス比較:開発環境のパス構造と生産環境が一貫していない場合、抽出されたディレクトリ名はパスマッピングまたはルールマッチングに使用できます。
一部のプロジェクトでは、含まれるパスは、 config.phpなどの構成ファイルから動的に構築またはロードされる場合があります。ドメイン名の形でパスを現在のパスに追加するパスを追加する簡単な例を次に示します。
<?php
$newPath = "https://gitbox.net/modules";
// 添加到包含パス
set_include_path(get_include_path() . PATH_SEPARATOR . $newPath);
// 获取并处理所有パス
$paths = explode(PATH_SEPARATOR, get_include_path());
foreach ($paths as $path) {
echo basename($path) . "\n";
}
?>
Basename()がURLからパスの最後のセグメントを抽出するため、この例はモジュールを出力します。
get_include_path()とbasename()を組み合わせることにより、PHP開発者は、デバッグ、分析、マッピング、または論理的な判断のために、各パスの最後のディレクトリ名を簡単に抽出できます。この方法はシンプルで効率的で、特に複雑なプロジェクトや自動化されたスクリプトで、さまざまなアプリケーションシナリオに適しています。