ファイルの一覧から、ファイル情報を配列でまとめたものを一括で取得できるようにしました。 ※ Windows では、php.ini の extension=php_fileinfo.dll を有効にする必要があります
<?php
header( "Content-Type: text/html; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );
print "<pre>";
$target = ".";
print realpath($target) . "\n";
$dir_handle = @opendir($target);
if ( $dir_handle ) {
// ディレクトリハンドルの取得成功
while (false !== ($entry = readdir($dir_handle))) {
// 対象外は読み飛ばし
if ( $entry == '.' || $entry == '..' ) {
print "対象外=>{$entry}\n";
continue;
}
print "{$entry}\n";
print_r( get_finfo($target.DIRECTORY_SEPARATOR.$entry) );
}
}
print "</pre>";
function get_finfo($path) {
$finfo = finfo_open(FILEINFO_MIME);
$mime = finfo_file($finfo, $path);
$mime2 = explode( "; ", $mime );
$mime3 = explode( "=", $mime2[1] );
$pathinfo = pathinfo(realpath($path));
$path_parts = pathinfo($pathinfo["dirname"]);
$pathinfo["parent"] = $path_parts["basename"];
$pathinfo["mime"] = $mime2[0];
$pathinfo["charset"] = $mime3[1];
if ( $pathinfo["charset"] == "" ) {
unset($pathinfo["charset"]);
}
$pathinfo["size"] = filesize($path);
if ( $pathinfo["mime"] == "directory" ) {
unset($pathinfo["size"]);
}
$pathinfo["full"] = realpath($path);
return $pathinfo;
}
?>
▼ 以下は、Windows での実行サンプルです。
C:\user\web\basic
対象外=>.
対象外=>..
db_update
Array
(
[dirname] => C:\user\web\basic
[basename] => db_update
[filename] => db_update
[parent] => basic
[mime] => directory
[full] => C:\user\web\basic\db_update
)
dir_test.php
Array
(
[dirname] => C:\user\web\basic
[basename] => dir_test.php
[extension] => php
[filename] => dir_test
[parent] => basic
[mime] => text/x-php
[charset] => utf-8
[size] => 1457
[full] => C:\user\web\basic\dir_test.php
)
log.zip
Array
(
[dirname] => C:\user\web\basic
[basename] => log.zip
[extension] => zip
[filename] => log
[parent] => basic
[mime] => application/zip
[charset] => binary
[size] => 1589
[full] => C:\user\web\basic\log.zip
)
php.exe
Array
(
[dirname] => C:\user\web\basic
[basename] => php.exe
[extension] => exe
[filename] => php
[parent] => basic
[mime] => application/x-dosexec
[charset] => binary
[size] => 59392
[full] => C:\user\web\basic\php.exe
)
php5.dll
Array
(
[dirname] => C:\user\web\basic
[basename] => php5.dll
[extension] => dll
[filename] => php5
[parent] => basic
[mime] => application/x-dosexec
[charset] => binary
[size] => 5949440
[full] => C:\user\web\basic\php5.dll
)
tool_html_150517214638.htm
Array
(
[dirname] => C:\user\web\basic
[basename] => tool_html_150517214638.htm
[extension] => htm
[filename] => tool_html_150517214638
[parent] => basic
[mime] => text/html
[charset] => utf-8
[size] => 603
[full] => C:\user\web\basic\tool_html_150517214638.htm
)
_img.jpg
Array
(
[dirname] => C:\user\web\basic
[basename] => _img.jpg
[extension] => jpg
[filename] => _img
[parent] => basic
[mime] => image/jpeg
[charset] => binary
[size] => 133801
[full] => C:\user\web\basic\_img.jpg
)
タグ:PHP
|
|
【PHPの最新記事】
- ロリポップのモジュール版 PHP でエラーを出力する方法
- PHP : unset によるオブジェクトのプロパティのと配列の要素の削除
- レンタルサーバで PHP のバージョンを 5.4 から 5.6 に変更する時の注意事項
- 【3大手法】 PHP で変数を埋め込んだ画面定義を外部ファイルにして、ループ内で展開する
- Windows で、MySQL を使っているので phpMyAdmin で参照しようとして、AN HTTPD だと setup が動かなかったので Apache を入れようとしたらいろいろルールがあっ..
- PHP : ファイルのアップロード時のデータのダンプ( PHP 5.4.0 以降で利用可能な php://input での取得 / ASP / C# )
- PHP で問い合わせ画面のページリンクを常に5つ作成しておいて、jQuery でいらないリンクを非表示にする
- PHP : HTMLのinput要素のname属性に二次元配列を指定して getElementsByName と jQueryのinput[name='value']:eq(n) でアクセステスト
- PHP の簡易ログとしては file_put_contents が使われますが、表現方法をいろいろテストして行くと、PHP のバージョンを 5.4.0 以上にして json_encode を使いたくな..
- さくらのサーバーで hash_hmac のアルゴリズムで使えるもの
- Pear を使用してダウンロード時のみ zip 圧縮してブラウザにデータを送る( プログレスバーはでません )
- Windows 環境で Pear のインストール
- PHP : php-5.3.1 の日付関数の注意点
- PHP : 暗号化と複合( libmcrypt )
- begin で始まるテキストで添付されたファイル(uuencode)を元に戻す方法






