/************************************************* *********************************/
/*/ /*/
/*/プログラム: ファイル システム クラス(FSC) /*/
/*/ PHP プログラマー : 吴双(James Wu) /*/
/*/ メール: wu-shuang@163.net /*/
/*/ ホームページ: http://www.dev-php. com /*/
/*/ 日付: 2002-01-24 /*/
/*/ /*/
/************************************************* *********************************/
クラスFSC{
/ ************************************************* ************************/
// 関数名: getfilesource
// 機能: 指定されたファイルの内容を取得
/ / パラメータ: $file 目标文件
/************************************************* ************************/
function getfilesource($file){
if($fp=fopen($file,'r')){
$filesource=fread($fp, filesize($file));
fclose($fp);
return $filesource;
}
else
return false;
}
/************************************************* ************************/
// 関数名: writefile
// 機能:创建新しい文件、内容を書き込む、指定された文件名が存在する場合、直接上書きします
// パラメータ: $file -- 新しい文件名
// $source 文件内容
/************************************************* ************************/
function writefile($file,$source){
if($fp=fopen($file,'w')){
$filesource=fwrite($fp,$source);
fclose($fp);
return $filesource ;
}
else
return false;
}
/************************************************* ************************/
// 関数名: movefile
// 機能: 移動文
// パラメータ: $file -- 移動待ちの文件名
/ / $destfile -- 目标文件名
// $overwrite 果如目标文件存在,有無被盖.默认是被盖.
// $bak 否か保持原文件 默认是不保持即删除原文件
/************************************************* *********************** */
function movefile($file,$destfile,$overwrite=1,$bak=0){
if(file_exists($destfile)){
if($overwrite)
unlink($destfile);
else
return false ;
}
if($cf=copy($file,$destfile)){
if(!$bak)
return(unlink($file));
}
return($cf);
}
/************************************************* ********************* ***/
// 関数名: moveir
// 関数: 次の関数 move の補助関数です。この関数はディレクトリを移動します
/************************************************* ************************/
function moveir($dir, $destdir ,$overwrite=1,$bak=0){
@set_time_limit(600);
if(!file_exists($destdir))
FSC::notfate_any_mkdir($destdir);
if(file_exists($dir)&& (is_dir ($ dir)) i {
if (substr ($ dir, -1)! = '/') $ not.
if (File_exists ($ Destdir) && (is_dir ($ Destdir)) ){
$ destdir。 fsc :: moveir($ dir。$ file、$ file、$ overwrite、$ bak :: delforder($ destdir。$ file);}}} (If (COPY ($ Dir. $ File, $ DESTDIR. $ File)
If (! $ Bak)
If (File_exists ($ Dir. $ File) && is_file ($ DIR. $ File)@
@ unlink($dir.$file); Return false;
}
/************************************************* ************************/
// 関数名: move
// 関数: ファイルまたはディレクトリを移動します
// パラメータ: $file -- ソースファイル/directory
// $path -- ターゲット パス
// $overwrite -- ファイルがターゲット パスに既に存在する場合、移動を上書きするかどうか
/ /-デフォルト値は 1、つまりカバーします
// $ BAK-バックアップを保持するかどうか (元のファイル/ディレクトリ)
/************************************************* ********************* ***/
Function Move ($ File, $ PATH, $overwrite = 1, $bak=0)
($file,0,strlen ($file)-1)); ';
if($file!='.'||$file!='..'||$file!='../'||$file!='。 /″)path.= $dirname; : :notfate_any_mkdir($path);
}}} S Else
Return false;
}
/************************************************* ********************* *** /
/
関数名: Delformer
// 機能: ディレクトリを削除します。このディレクトリにファイルやサブディレクトリがあっても、すべて削除します。間違って削除しないように注意してください
// パラメータ: $file -- ソースファイル/ディレクトリ
/************************************************* ************************/
function delforder($file) {
chmod($file,0777);
if ( is_dir ($ File) {
$ handle = OpenDir ($ file);
while ($ filename = readdir ($ handle)) {
if ($ FILENAME! = "&& $ FILENAME! =" .. ")
Return(rmdir($file));
}
else {
unlink($file );
}
}
/************************************************* ************************/
// 関数名: notfate_mkdir
// 関数: 新しいディレクトリを作成、これは php.net のコードであり、mkdir.
の欠点を補っています。 // パラメーター : $dir -- ディレクトリ名
/************************************************* ************************/
function notfate_mkdir($dir,$mode) =0777){
$u=umask(0);
$r=mkdir($dir,$mode );
umask($u);
return $r;
}
/************************************************* ************************/
// 関数名: notfate_any_mkdir
// 関数: 新しいディレクトリを作成します。これは上記の notfate_mkdir とは少し異なります。さらに Any がある場合は、複数レベルのディレクトリを作成できます
// 例: notfate_any_mkdir (" ABC/ABC/ABC/ABC/ABC")
パラメータ: $ DIRS - ディレクトリ名
/************************************************* ********************* ***** /
function notfate_any_mkdir($dirs,$mode=0777)
{
if(!strrpos ($dirs,'/'))
{
return(FSC::notfate_mkdir($dirs,$mode));
}else
$forder=explode('/',$dirs);
$f= [$ n]=='') 続行;
$f.=((($n==0)&&($forder[$n]<>''))?(''):('/ ') ).$forder[$n];
else
$mode)) 続行;
else
false を返す &************/
/*/ 終了クラス FSC /*/
/************************************************* *******************************/
}
?>