NeGiMeMo.net

ねぎさんのメモ帳。日常・メモ・ときどきWordPress。

PHPで自分のファイル名を取得する方法

bell賞味期限切れコンテンツ

この記事は公開または最終更新から1241日くらい経過しています。
このメッセージが表示されている記事(特にプログラミング系)は情報が古くなっている可能性があるので注意して下さい。

たまに使うけど毎回忘れるのでメモ。

基本的な取得方法

PHPには$_SERVERという便利なヤツがおりまして、そこにヘッダとかパスとかが入っていますので、それを取り出すことでフォームなどで自分自身に送信するときなんかに利用できます。

PHP: $_SERVER – Manual

つまり、

 とするだけでドキュメントルートからのパス付きで現在のファイル名が取得出来るわけですね。

ファイル名だけを取得したい場合 

 ところで、パスはいらなくてファイル名のみ欲しい場合はどうしたらいいでしょうか?

これも簡単で、やっぱりPHPには basename というイカした奴がおりまして。

 とするとあら不思議。

パスを取り除いた自分自身のファイル名のみが取得出来るのでした。

どんな時に使いたかったのかというと、こんなかんじでドロップダウンリストを使ったナビゲーションを生成したいときに、自分自身のページが出ていたらそこを選択済みにしておきたかったのです。

日本語のファイル名は(今は)うまく動かない 

basename は便利なヤツですが、なんとマルチバイトが扱えないというバグが有り、

ファイル名が日本語だと正しく動作しないようです。

ただし、次期バージョンのPHP6では修正されるんだとか。

PHP6はかなりリリースがのびのびになってるようですし、レンタルサーバーなんかの場合は勝手にバージョンアップはできませんので、この恩恵を受けられるようになるのはまだ当分先かもしれませんけれど…。

[PHP] basename関数の日本語が消されてしまうバグは、PHP6では修正されている|成長の果実

TAGS
  • William Potter

    __FILE__

Pingback / Trackback