dirname: 親ディレクトリのパスを返す (ファイルシステム 関数) - PHPプロ!マニュアル

PHPマニュアル

dirname: 親ディレクトリのパスを返す

dirname

(PHP 4, PHP 5)

dirname親ディレクトリのパスを返す

説明

string dirname ( string $path )

ファイルあるいはディレクトリへのパスを含む文字列を受け取って、 親ディレクトリのパスを返します。

パラメータ

path

パス。

Windows では、スラッシュ(/)とバックスラッシュ (\)の両方がディレクトリ区切り文字として使われます。 その他の環境ではスラッシュ(/)になります。

返り値

親ディレクトリのパスを返します。 path にスラッシュが無い場合は、 カレントディレクトリを示すドット ('.') を返します。それ以外の場合は、スラッシュ以降の /component 部分を取り除いた path を返します。

変更履歴

バージョン 説明
5.0.0 dirname() がバイナリセーフとなりました。
4.0.3 dirname() が POSIX 準拠となりました。

例1 dirname() の例

<?php
echo "1) ".dirname("/etc/passwd").PHP_EOL;
echo 
"2) ".dirname("/etc/").PHP_EOL;
echo 
"3) ".dirname(".");
?>

上の例の出力は以下となります。

1) /etc
2) /
3) .

注意

注意:

dirname() は、入力文字列を単純にそのまま処理します。 実際のファイルシステムを確認したり ".." のようなパスを気にしたりすることはありません。

注意:

dirname() はロケールに依存します。 マルチバイト文字を含むパスで正しい結果を得るには、それと一致するロケールを setlocale() で設定しておかなければなりません。

注意:

PHP 4.3.0 以降では、これまでは dirname() が空文字列を返していたような状況で スラッシュやドットを返すことが多くなりました。

以下の例で変更点をご確認ください。

<?php

// PHP 4.3.0 より前のバージョン
dirname('c:/'); // '.' を返します

// PHP 4.3.0 以降のバージョン
dirname('c:/x'); // 'c:\' を返します
dirname('c:/Temp/x'); // 'c:/Temp' を返します
dirname('/x'); // '\' を返します

?>

参考

  • basename() - パスの最後にある名前の部分を返す
  • pathinfo() - ファイルパスに関する情報を返す
  • realpath() - 絶対パス名を返す


PHPマニュアル



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)