//ディレクトリ操作基本クラス
class FileDirectory {
var $servermode;
var $serverpath; //現在のページディレクトリ
var $path;ファイルに関する情報を保存します
function FileDirectory() {
set_time_limit(0); // Web ページの実行時間を設定します。制限なしで 0 に設定します
$this->serverpath = $GLOBALS[DOCUMENT_ROOT]."/ ";
$ this->path = $this->pagepath = dirname(eregi_replace("//","/",$GLOBALS[SCRIPT_FILENAME]))."/";
if(eregi("Win32" ,getenv(" SERVER_SOFTWARE")))
$this->servermode = "WIN32";
}
function first_dir() {
return dirname(eregi_replace("//","/",$GLOBALS[SCRIPT_FILENAME]) );
}
//ファイル情報を取得する
function file_info($filename) {
$ar[name] = $filename;
$ar[type] = filetype($filename);
$ar[read] = is_readable( $filename);
$ar[write] = is_writeable($filename);
$ar[exec] = is_executable($filename);
$ar[time] = date("Y-m-d H:i:s",filemtime( $filename)) ;
$ar[size] = filesize($filename);
$ar[style] = ($ar[type]=="dir"?"d":"-")
.($ar [read]? "r":"-")
.($ar[write]? "w":"-")
.($ar[exec]? "x": "-"); ar;
}
function format_path($path){
$tar = split("/",$path);
$sar = Split("/",$this->path);
$t = count ($tar);
$s = count($sar);
if($tar[$t-1] == "") $t--;
if($sar[$s-1] == " ") $s-- ;
$j = 0;
while($tar[$j] == "..") {
$j++;
$s--;
}
$p = "";
for($i=0 ;$i<$s;$i++)
.正常に返された場合、$this->path はディレクトリのフルパスです
関数name=".") {
$old = $ this->path;
if($this->servermode = = "WIN32")
$path = str_replace("\","/",$pathname);
else
$path = $pathname;
$ this-&gt; format_path($ path);
return $ar;
}
} //FileDirectory 定義終了
?>
//ディレクトリダイアログボックス
class OpenFileDialog extends FileDirectory {
var $filter = array("*.*") ;
関数 Execute($path,$statpath) {
if($path != "") {
chdir($statpath);
$this->gt;path = $statpath;
$ar = $this->array_dir($path);
}else
$ar = $this->array_dir(".");
array_multisort($ar);
echo "