関数・クラス解説

pathinfo

version:PHP 4 >= 4.0.3, PHP 5, PHP 7 (公式)

ファイルパスに関する情報を返す

公式リファレンス

書式

pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] ) : mixed

説明

pathinfo() は、path に関する情報を返します。options によって連想配列あるいは文字列のどちらかとなります。

注意:

カレントのパスに関する情報を取得するには、 定義済みの変数 のセクションをご覧ください。

警告

pathinfo() はロケールを考慮して処理を行います。 マルチバイト文字を含むパスを正しく処理するには、正しいロケールを setlocale() 関数で設定しておかなければなりません。

パラメータ

path
調べたいパス。
options
指定する場合は、どの要素を返すのかを PATHINFO_DIRNAME、 PATHINFO_BASENAME、 PATHINFO_EXTENSION あるいは PATHINFO_FILENAME のいずれかで指定します。 options を省略した場合はすべての要素を返します。

返値

options パラメータを渡さなかった場合は、次の要素を含む連想配列を返します。 dirname、basename、 extension (存在すれば)、そして filename。

注意: path に複数の拡張子が含まれる場合は、 PATHINFO_EXTENSION は最後の拡張子だけを返します。また、 PATHINFO_FILENAME は最後の拡張子だけを取り除きます (最初のサンプルを参照ください)。
注意: path に拡張子がない場合は、 extension 要素は返されません (以下の二番目の例を参照ください)。
注意: path の basename がドットで始まる場合は、それに続く文字は extension とみなされます。そして filename は空文字列となります (以下の三番目の例を参照ください)。
options を指定すると、 要求した要素を文字列で返します。

サンプル

例1 pathinfo() の例

$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php'); echo $path_parts['dirname'], "\n"; echo $path_parts['basename'], "\n"; echo $path_parts['extension'], "\n"; echo $path_parts['filename'], "\n"; // PHP 5.2.0 以降

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

/www/htdocs/inc lib.inc.php php lib.inc

例2 pathinfo() での、拡張子を空にしたときと拡張子がないときの違いの例

$path_parts = pathinfo('/path/emptyextension.'); var_dump($path_parts['extension']); $path_parts = pathinfo('/path/noextension'); var_dump($path_parts['extension']);

上の例の出力は、たとえば以下のようになります。

string(0) "" Notice: Undefined index: extension in test.php on line 6 NULL

例3 pathinfo() での、ドットファイルの例

print_r(pathinfo('/some/path/.test'));

上の例の出力は、たとえば以下のようになります。

Array ( [dirname] => /some/path [basename] => .test [extension] => test [filename] => )

参考

  • dirname() - 親ディレクトリのパスを返す
  • basename() - パスの最後にある名前の部分を返す
  • parse_url() - URL を解釈し、その構成要素を返す
  • realpath() - 正規化された絶対パス名を返す
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール