php中检查文件或目录是否存在的代码小结
2023-06-13 09:14:40 时间
下面是一个简单的检查文件是否存在的实例代码:
复制代码代码如下:
<?php
$filename="/path/to/foo.txt";
if(file_exists($filename)){
echo"Thefile$filenameexists";
}else{
echo"Thefile$filenamedoesnotexist";
}
?>
如果文件存在,执行该PHP文件的显示结果是:
ThefileC:blablaphphello.txtexists.
如果文件不存在,执行该PHP文件的显示结果是:
ThefileC:\blabla\phphello.txtdoesnotexist.
你也可以用file_exists函数测试某个目录是否存在,示例代码如下:
if(file_exists("C:\blabla\php"))
{echo"yes";}
else
{echo"no";}
实例
/**
*文件或目录权限检查函数
*
*@accesspublic
*@paramstring$file_path文件路径
*@parambool$rename_prv是否在检查修改权限时检查执行rename()函数的权限
*
*@returnint返回值的取值范围为{0<=x<=15},每个值表示的含义可由四位二进制数组合推出。
*返回值在二进制计数法中,四位由高到低分别代表
*可执行rename()函数权限、可对文件追加内容权限、可写入文件权限、可读取文件权限。
*/
functionfile_mode_info($file_path)
{
/*如果不存在,则不可读、不可写、不可改*/
if(!file_exists($file_path))
{
returnfalse;
}
$mark=0;
if(strtoupper(substr(PHP_OS,0,3))=="WIN")
{
/*测试文件*/
$test_file=$file_path."/cf_test.txt";
/*如果是目录*/
if(is_dir($file_path))
{
/*检查目录是否可读*/
$dir=@opendir($file_path);
if($dir===false)
{
return$mark;//如果目录打开失败,直接返回目录不可修改、不可写、不可读
}
if(@readdir($dir)!==false)
{
$mark^=1;//目录可读001,目录不可读000
}
@closedir($dir);
/*检查目录是否可写*/
$fp=@fopen($test_file,"wb");
if($fp===false)
{
return$mark;//如果目录中的文件创建失败,返回不可写。
}
if(@fwrite($fp,"directoryaccesstesting.")!==false)
{
$mark^=2;//目录可写可读011,目录可写不可读010
}
@fclose($fp);
@unlink($test_file);
/*检查目录是否可修改*/
$fp=@fopen($test_file,"ab+");
if($fp===false)
{
return$mark;
}
if(@fwrite($fp,"modifytest.rn")!==false)
{
$mark^=4;
}
@fclose($fp);
/*检查目录下是否有执行rename()函数的权限*/
if(@rename($test_file,$test_file)!==false)
{
$mark^=8;
}
@unlink($test_file);
}
/*如果是文件*/
elseif(is_file($file_path))
{
/*以读方式打开*/
$fp=@fopen($file_path,"rb");
if($fp)
{
$mark^=1;//可读001
}
@fclose($fp);
/*试着修改文件*/
$fp=@fopen($file_path,"ab+");
if($fp&&@fwrite($fp,"")!==false)
{
$mark^=6;//可修改可写可读111,不可修改可写可读011...
}
@fclose($fp);
/*检查目录下是否有执行rename()函数的权限*/
if(@rename($test_file,$test_file)!==false)
{
$mark^=8;
}
}
}
else
{
if(@is_readable($file_path))
{
$mark^=1;
}
if(@is_writable($file_path))
{
$mark^=14;
}
}
return$mark;
}
PHP判断目录是否存在
/****************************************************
*将xml数据流,写入到xml文件
*@param$xmlData
*@returnbool|string
*/
functionwriteXmlFile($xmlData)
{
$time=time();//获取时间戳,用于给文件命名
$path=dirname(__FILE__);//获取当前绝对路径
$path=substr_replace($path,"",stripos($path,"actions\data"));//将此文件所在的固有路径替换成空
$path.="xmlFiles\";//存放目录名
/*判断目标目录是否存在,不存在则新建*/
if(!is_dir($path))
{
mkdir($path);//新建目录
}
/*记录完整路径和文件名*/
$filePathAndName=$path.$time.".xml";
/*打开文件,文件名为<时间戳>+<.xml>*/
$fp=fopen($filePathAndName,"w");
if(!$fp)
{
returnfalse;
}
/*写入文件流*/
$flag=fwrite($fp,$xmlData);
if(!$flag)
{
returnfalse;
}
fclose($fp);
return$filePathAndName;
}
相关文章
- [PHP代码]php代码书写规范和要求
- PHP使用MySQL数据库:最佳实践(php查询mysql数据库)
- 驱动MySQL驱动加载:一种基于PHP的解决方案(php加载mysql)
- PHP在Linux上的安装(php安装linux)
- PHP应该在哪个Linux操作系统上运行?(php用什么linux)
- Redis现在支持PHP啦!(redis支持php)
- PHP实现在Linux系统中进行文件操作(php写linux文件)
- 从头到尾:使用PHP进行MSSQL手工注入(php手工注入mssql)
- 使用PHP和MSSQL实现网站搭建(php mssql 搭建)
- 使用Linux发布PHP网站:让你的站点稳定高效(linux发布php网站)
- Linux下轻松执行PHP文件的方法(linux执行php文件)
- PHP写入WRITE编码为UTF8的文件的实现代码
- php做下载文件的实现代码及文件名中乱码解决方法
- php中通过Ajax如何实现异步文件上传的代码实例
- php入门学习知识点六PHP文件的读写操作代码
- 让PHP更快的提供文件下载的代码
- Window下PHP三种运行方式图文详解
- PHP遍历某个目录下的所有文件和子文件夹的实现代码
- php强制下载文件实现代码
- PHP获取php,mysql,apche的版本信息示例代码
- php设置允许大文件上传示例代码
- 兼容ie6浏览器的php下载文件代码分享
- PHP常用技术文之文件操作和目录操作总结