|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
另外要叮嘱各位的是,抵御诱惑,ASP/PHP/JSP/.NET的对比也许会让你无所适从,你也许学了一半PHP,又开始打C#的主意,或者有人说JAVA很强,这个时候的你绝对不能动摇,哪怕你真想学。 <?
/***********************************************************************************/
/*/ /*/
/*/ Program: File System Class(FSC) /*/
/*/ PHP Programer :吴双(James Wu) /*/
/*/ Email: wu-shuang@163.net /*/
/*/ HomePage: http://www.dev-php.com /*/
/*/ Date: 2002-01-24 /*/
/*/ /*/
/***********************************************************************************/
class 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);
}
/**************************************************************************/
// 函数名: movedir
// 功效: 这是下一涵数move的附助函数,功效就是挪动目次
/**************************************************************************/
function movedir($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)))
{
if(substr($dir,-1)!='/')$dir.='/';
if(file_exists($destdir)&&(is_dir($destdir))){
if(substr($destdir,-1)!='/')$destdir.='/';
$h=opendir($dir);
while($file=readdir($h)){
if($file=='.'||$file=='..')
{
continue;
$file="";
}
if(is_dir($dir.$file)){
if(!file_exists($destdir.$file))
FSC::notfate_mkdir($destdir.$file);
else
chmod($destdir.$file,0777);
FSC::movedir($dir.$file,$destdir.$file,$overwrite,$bak);
FSC::delforder($dir.$file);
}
else
{
if(file_exists($destdir.$file)){
if($overwrite)unlink($destdir.$file);
else{
continue;
$file="";
}
}
if(copy($dir.$file,$destdir.$file))
if(!$bak)
if(file_exists($dir.$file)&&is_file($dir.$file))
@unlink($dir.$file);
}
}
}
else
return false;
}
else
return false;
}
/**************************************************************************/
// 函数名: move
// 功效: 挪动文件或目次
// 参数: $file -- 源文件/目次
// $path -- 方针途径
// $overwrite -- 如是方针途径中已存在该文件时,是不是掩盖挪动
// -- 默许值是1, 即掩盖
// $bak -- 是不是保存备份(原文件/目次)
/**************************************************************************/
function move($file,$path,$overwrite=1,$bak=0)
{
if(file_exists($file)){
if(is_dir($file)){
if(substr($file,-1)=='/')$dirname=basename(substr($file,0,strlen($file)-1));
else $dirname=basename($file);
if(substr($path,-1)!='/')$path.='/';
if($file!='.'||$file!='..'||$file!='../'||$file!='./')$path.=$dirname;
FSC::movedir($file,$path,$overwrite,$bak);
if(!$bak)FSC::delforder($file);
}
else{
if(file_exists($path)){
if(is_dir($path))chmod($path,0777);
else {
if($overwrite)
@unlink($path);
else
return false;
}
}
else
FSC::notfate_any_mkdir($path);
if(substr($path,-1)!='/')$path.='/';
FSC::movefile($file,$path.basename($file),$overwrite,$bak);
}
}
else
return false;
}
/**************************************************************************/
// 函数名: delforder
// 功效: 删除目次,不论该目次下是不是有文件或子目次,全体删除哦,当心别删错了哦!
// 参数: $file -- 源文件/目次
/**************************************************************************/
function delforder($file) {
chmod($file,0777);
if (is_dir($file)) {
$handle = opendir($file);
while($filename = readdir($handle)) {
if ($filename != "." && $filename != "..")
{
FSC::delforder($file."/".$filename);
}
}
closedir($handle);
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='';
for($n=0;$n<count($forder);$n++)
{
if($forder[$n]=='') continue;
$f.=((($n==0)&&($forder[$n]<>''))?(''):('/')).$forder[$n];
if(file_exists($f)){
chmod($f,0777);
continue;
}
else
{
if(FSC::notfate_mkdir($f,$mode)) continue;
else
return false;
}
}
return true;
}
}
/*********************************************************************************/
/*/ End Class FSC /*/
/*********************************************************************************/
}
?> PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。 |
|