HOME>WEBプログラム覚書>[SPL]SplFileInfo
[SPL]SplFileInfo
久しぶりにSPLネタ。
ファイルの情報をオブジェクト指向っぽく書くためのもの。
SplFileInfoで出来ることはファイルシステム 関数として存在してるので、
わざわざSplFileInfoを使う理由はないけど、クラスなので継承して機能を拡張できたりもする。
サンプル
DumpFileInfo
ファイルの情報をまとめて表示できる機能を追加
DumpFileInfo
<?php
class DumpFileInfo extends SplFileInfo
{
public function dump()
{
foreach (get_class_methods($this) as $func) {
if (preg_match('/^get|is.+$/', $func)) {
try {
$result = $this->{$func}();
if (is_bool($result)) {
$result = $result ? 'true' : 'false';
}
} catch (Exception $e) {
$result = '[例外]' . $e->getMessage();
}
printf('%s => %s<br />', $func, $result);
}
}
}
}
$dfi = new DumpFileInfo(__FILE__);
$dfi->dump();
?>
実行結果
getPath => /home/users/1/lolipop.jp-dp07173486/web/_/themes/default/views/pg/2011/02
getFilename => splsplfileinfo.php
getExtension => php
getBasename => splsplfileinfo.php
getPathname => /home/users/1/lolipop.jp-dp07173486/web/_/themes/default/views/pg/2011/02/splsplfileinfo.php
getPerms => 33188
getInode => 7531592481
getSize => 6971
getOwner => 247673
getGroup => 1000
getATime => 1725893954
getMTime => 1525622974
getCTime => 1655383699
getType => file
isWritable => true
isReadable => true
isExecutable => false
isFile => true
isDir => false
isLink => false
getLinkTarget => [例外]Unable to read link /home/users/1/lolipop.jp-dp07173486/web/_/themes/default/views/pg/2011/02/splsplfileinfo.php, error: Invalid argument
getRealPath => /home/users/1/lolipop.jp-dp07173486/web/_/themes/default/views/pg/2011/02/splsplfileinfo.php
getFileInfo => /home/users/1/lolipop.jp-dp07173486/web/_/themes/default/views/pg/2011/02/splsplfileinfo.php
getPathInfo => /home/users/1/lolipop.jp-dp07173486/web/_/themes/default/views/pg/2011/02
内部のパス情報さらしてますが攻撃とかはしないでくださいw
投稿日 |
2011年2月24日 02:28 |
カテゴリ |
PHP |
タグ |
SPL | サンプルコード |
トラックバック URL |
http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1219 |
コメント