Home >Backend Development >PHP Tutorial >Example code for checking whether a file or directory exists in php

Example code for checking whether a file or directory exists in php

伊谢尔伦
伊谢尔伦Original
2017-07-08 11:52:532695browse

Check whether the file or directory exists. We use the commonly used function in php file_exists. This function can achieve the function I want. Please refer to it slowly below

It is a simple example code to check whether the file exists:

The code is as follows:

<?php 
$filename = &#39;/path/to/foo.txt&#39;; 
if (file_exists($filename)) { 
echo "The file $filename exists"; 
} else { 
echo "The file $filename does not exist"; 
} 
?>

If the file exists, the display result of executing the PHP file is:
The file C :blablaphphello.txt exists.
If the file does not exist, the displayed result of executing the PHP file is:
The file C:\blabla\phphello.txt does not exist.
You can also use the file_exists function to test Whether a certain directory exists, the sample code is as follows:

The code is as follows:

if (file_exists("C:\blabla\php")) 
{echo "yes";} 
else 
{echo "no";}

Example

The code is as follows:

/** 
* 文件或目录权限检查函数 
* 
* @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, 0, 3)) == &#39;WIN&#39;) 
{ 
/* 测试文件 */ 
$test_file = $file_path . &#39;/cf_test.txt&#39;; 
/* 如果是目录 */ 
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, &#39;wb&#39;); 
if ($fp === false) 
{ 
return $mark; //如果目录中的文件创建失败,返回不可写。 
} 
if (@fwrite($fp, &#39;directory access testing.&#39;) !== false) 
{ 
$mark ^= 2; //目录可写可读011,目录可写不可读 010 
} 
@fclose($fp); 
@unlink($test_file); 
/* 检查目录是否可修改 */ 
$fp = @fopen($test_file, &#39;ab+&#39;); 
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, &#39;rb&#39;); 
if ($fp) 
{ 
$mark ^= 1; //可读 001 
} 
@fclose($fp); 
/* 试着修改文件 */ 
$fp = @fopen($file_path, &#39;ab+&#39;); 
if ($fp && @fwrite($fp, &#39;&#39;) !== 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 Determine whether the directory exists

The code is as follows:

/**************************************************** 
* 将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; 
}


The above is the detailed content of Example code for checking whether a file or directory exists in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn