首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>php>php技巧>正文

一个PHP类

http://www.oklinux.cn  2003-05-01  来源: 互联网    会员收藏  游客收藏  【 】 

<?
/***********************************************************************************/
/*/                                                                               /*/
/*/                        Program: File System Class(FSC)                        /*/
/*/                        PHP Programer :吴双(James Wu)                          /*/
/*/                        Email: [email protected]                               /*/
/*/                        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生成类或例子
·无限分类&树型论坛的实现
·一个操作xml的类
·贴个购物车的类,只用了一个Session
·一个翻页类
·搜索和替换文件或目录的一个好类
·一个访问ACCESS的类
·数字转换为中文的类
·一个分页导航类
·树型结构列出指定目录里所有文件的PHP类
·使用PHP4中的 IntegratedTemplate类实现BLOCK功能
·一个分页导航类示例
·一个改进的UBB类
·如何文档化你的PHP类
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·PHP之COOKIE支持详解
·PHP中的类
·php中文处理函数
·通过ODBC连接的SQL
·两个日期类
·面向对象编程
·面向过程与面向对象的简单比较
·判断WebSERVER类型
·屏蔽浏览器缓存另类方法
·日历类
·如何文档化你的PHP类
·使用PHP4中的 IntegratedTemplate类实
  阅读排行
·PHP之COOKIE支持详解
·PHP 应用程序配置模式
·用 PHP 读取文件的正确方法
·利用单元测试对PHP 代码进行检查
·五个常见 PHP 数据库问题
·用 PHP V4 开发的代码迁移到 PHP V5
·使用PHP 快速生成Flash 动画
·Linux系统下PHP服务器安全配置技巧
·Linux操作系统下的多线程编程详细解析
·用PHP读取和编写XML DOM
·用Pear加速PHP程序开发
·如何用PHP调用自己编写的COM组件?
·PHP面向对象编程快速入门
·为 Linux 和 Windows 安装 PHP 和 Orac
·终于实现简体转繁体,繁体到转体
网摘收藏: