PHPでWEBサイト構築などを行なっている際に、ファイル操作でURLからファイルを抽出したり、拡張子を抜き出したり、document-rootを取得したり・・・
と、何かとファイル、ディレクトリなどのコントロールをしなければいけない時に、「pathinfo」関数が便利だと最近気がついた(遅!!)
PHPマニュアル(日本語)サイト
関数情報と使い方
概要
ファイルパスの情報を取得する。
PHP4移行であれば使えるようだ。
返り値情報
- dirname : Document-root(ファイル名を省いた形)
- basename : ファイル名またはディレクトリ名
- extension : ファイルの拡張子
- filename : ファイルの拡張子を抜いた名前(ver 5.2.0移行)
連想配列で取得できるので、結構便利なのだ。
いちいちexplodeしたり、str_replaceしたりしなくてもいいので、重宝します。
使用例
<?php
$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";
結果
/www/htdocs/inc
lib.inc.php
php
lib.inc
関数一発で取得できるので使わないと損です。
何故今まで使わなかったのだろう・・・orz
いろいろ実験
URL
<?php
$path_parts = pathinfo('http://wordpress.ideacompo.com/hoge.php');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n";
結果
http://wordpress.ideacompo.com
hoge.php
php
hoge
想定通りの結果です。個人的にはURLには「プロトコル」「ドメイン」「ポート」「document-root階層」などがあるとよりいいかも・・・と思ったんですが、
あくまでpathinfo関数なので贅沢は言うまい。
そして、URL情報の取得は
「parse_url」というのがある。
そっち使えって事なのね。
windows-path
<?php
$path_parts = pathinfo('c:¥windows¥system¥test.dat');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n";
結果
.
c:¥windows¥system¥test.dat
dat
c:¥windows¥system¥test
あたりまえですが、「/」区切りではないので、windows階層は認識しませんね。
でもサーバー内部パスということで、windowsサーバーでPHPを叩くことが無いので、これは捨てましょう。
0 件のコメント:
コメントを投稿