php中检查文件或目录是否存在的代码小结

下面是一个简单的检查文件是否存在的实例代码
<div class="codetitle"><a style="CURSOR: pointer" data="94456" class="copybut" id="copybut94456" onclick="doCopy('code94456')"> 代码如下:

<div class="codebody" id="code94456">
<?PHP
$filename = '/path/to/foo.txt';
if (file_exists($filename)) {
echo "The file $filename exists";
} else {
echo "The file $filename does not exist";
}
?>

如果文件存在,执行该 PHP 文件显示结果是:
The file C:blablaPHPhello.txt exists.
如果文件不存在,执行该 PHP 文件显示结果是:
The file C:\blabla\PHPhello.txt does not exist.
你也可以用file_exists 函数测试某个目录是否存在,示例代码如下:
<div class="codetitle"><a style="CURSOR: pointer" data="86170" class="copybut" id="copybut86170" onclick="doCopy('code86170')"> 代码如下:
<div class="codebody" id="code86170">
if (file_exists("C:\blabla\PHP"))
{echo "yes";}
else
{echo "no";}

实例
<div class="codetitle"><a style="CURSOR: pointer" data="64143" class="copybut" id="copybut64143" onclick="doCopy('code64143')"> 代码如下:
<div class="codebody" id="code64143">
/
文件或目录权限检查函数

@access public
@param string $file_path 文件路径
@param bool $rename_prv 是否在检查修改权限时检查执行rename()函数的权限

@return int 返回值的取值范围为{0 <= x <= 15},每个值表示的含义可由四位二进制数组合推出。
返回值在二进制计数法中,四位由高到低分别代表
可执行rename()函数权限、可对文件追加内容权限、可写入文件权限、可读取文件权限。
/
function file_mode_info($file_path)
{
/ 如果不存在,则不可读、不可写、不可改 /
if (!file_exists($file_path))
{
return false;
}
$mark = 0;
if (strtoupper(substr(PHP_OS,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,'directory access testing.') !== false)
{
$mark ^= 2; //目录可写可读011,目录可写不可读 010
}
@fclose($fp);
@unlink($test_file);
/ 检查目录是否可修改 /
$fp = @fopen($test_file,'ab+');
if ($fp === false)
{
return $mark;
}
if (@fwrite($fp,"modify test.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判断目录是否存在
<div class="codetitle"><a style="CURSOR: pointer" data="3664" class="copybut" id="copybut3664" onclick="doCopy('code3664')"> 代码如下:<div class="codebody" id="code3664">
/**
将xml数据流,写入到xml文件
@param $xmlData
@return bool|string
/
function writeXmlFile($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)
{
return false;
}
/写入文件/
$flag = fwrite($fp,$xmlData);
if(!$flag)
{
return false;
}
fclose($fp);
return $filePathAndName;
}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...