開発では、特にファイルの操作やパス処理などのシナリオで、ファイルの親ディレクトリパスを取得する必要があることがよくあります。ファイルの親ディレクトリを簡単かつ迅速に取得する方法を理解することが特に重要です。 PHPは、ファイルの親ディレクトリパスを取得するための非常にシンプルで実用的な機能-DirName()を提供します。この記事では、DiRNAME()関数の使用とその共通のアプリケーションの使用法を分析します。
dirname()は、ファイルの親ディレクトリパスを取得するPHPの組み込み関数です。この関数は、指定されたパスのディレクトリパーツを返し、通常、ファイルがフルパスから存在するフォルダーを抽出するために使用されます。
関数構文:
<span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$path</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$levels</span></span><span> = </span><span><span class="hljs-number">1</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
$パス:完全なファイルパスを表す必要があります。
$レベル:オプション、返される親ディレクトリのレイヤー数を指定するオプション、デフォルトは1です。 $レベルの値が2の場合、親ディレクトリの親ディレクトリが返されます。
最も一般的な使用シナリオは、ファイルの直接の親ディレクトリを取得することです。ファイルパス/var/www/html/index.phpがあるとします。dirname ()関数を使用して、親ディレクトリ/var/www/htmlを簡単に取得できます。
サンプルコード:
<span><span><span class="hljs-variable">$file_path</span></span><span> = </span><span><span class="hljs-string">'/var/www/html/index.php'</span></span><span>;
</span><span><span class="hljs-variable">$parent_dir</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>(</span><span><span class="hljs-variable">$file_path</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$parent_dir</span></span><span>; </span><span><span class="hljs-comment">// 出力: /var/www/html</span></span><span>
</span></span>
上記のコードでは、 dirname()がファイルindex.phpの親ディレクトリパス/var/www/htmlを返します。
ファイルが高くなっているディレクトリを取得する必要がある場合があります。 $レベルパラメーターを設定することにより、返された親ディレクトリレベルを制御できます。たとえば、 index.phpの親ディレクトリの親ディレクトリを取得します。
サンプルコード:
<span><span><span class="hljs-variable">$file_path</span></span><span> = </span><span><span class="hljs-string">'/var/www/html/index.php'</span></span><span>;
</span><span><span class="hljs-variable">$parent_dir_level2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>(</span><span><span class="hljs-variable">$file_path</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$parent_dir_level2</span></span><span>; </span><span><span class="hljs-comment">// 出力: /var/www</span></span><span>
</span></span>
この例では、 dirName($ file_path、2)は/var /wwwを返します。つまり、ファイルの親ディレクトリの親ディレクトリです。
場合によっては、特にファイルを扱う場合やパス計算を行う場合、現在のPHPスクリプトが配置されているディレクトリパスを取得する必要があります。 __file__定数とdirName()関数の組み合わせを通じて、この要件を達成できます。
サンプルコード:
<span><span><span class="hljs-variable">$current_file</span></span><span> = </span><span><span class="hljs-keyword">__FILE__</span></span><span>;
</span><span><span class="hljs-variable">$parent_dir</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>(</span><span><span class="hljs-variable">$current_file</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$parent_dir</span></span><span>;
</span></span>
__file__現在のスクリプトの絶対パスを返し、 dirname()と組み合わせて、現在のスクリプトの親ディレクトリパスを取得できます。
DirName()は、特に相対パスを構築したり、ファイルシステムを処理する場合、他のパス操作関数でも使用されます。 dirname()を介して、ファイルパスを簡単に処理できます。
サンプルコード:
<span><span><span class="hljs-variable">$file_path</span></span><span> = </span><span><span class="hljs-string">'/var/www/html/index.php'</span></span><span>;
</span><span><span class="hljs-variable">$parent_dir</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>(</span><span><span class="hljs-variable">$file_path</span></span><span>);
</span><span><span class="hljs-variable">$full_path</span></span><span> = </span><span><span class="hljs-variable">$parent_dir</span></span><span> . </span><span><span class="hljs-string">'/assets/style.css'</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$full_path</span></span><span>; </span><span><span class="hljs-comment">// 出力: /var/www/html/assets/style.css</span></span><span>
</span></span>
ここでは、 dirname()を介してindex.phpの親ディレクトリを取得し、サブディレクトリファイルパスをスプライスし、新しいファイルパスを生成します。
dirName()関数は、パスの最後にスラッシュがあるかどうかに非常に敏感です。パスの終わりにスラッシュがある場合、自動的に削除されます。たとえば、 dirName( '/var/www/html/') returns /var/www 。
特にLinuxやWindowsなどのシステム間を移植するときは、 dirname()を使用する場合のパスの場合に注意してください。
パスが無効であるか、存在しない場合、 dirname()は有効な親ディレクトリパスを返しますが、これは実際のディレクトリではない場合があります。
dirname()は、シンプルだが非常に実用的なPHP関数であり、開発者がファイルの親ディレクトリパスをすばやく取得するのに役立ちます。この機能を合理的に使用することにより、ファイルパスを簡単に処理し、コードの保守性と移植性を向上させることができます。現在のスクリプトディレクトリを動的に取得する場合でも、マルチレイヤーディレクトリ構造を扱う場合でも、 dirname()は価値のあるツールです。