08-文件-操作

187 阅读1分钟

php操作目录

创建一个新的目录mkdir() ü 描述:尝试新建一个由 pathname 指定的目录。 ü 语法:bool mkdir ( string pathname[,intpathname [, int mode = 0777 [, bool recursive=false]])u¨参数:nrecursive = false ]] ) ü 参数: n pathname:指定目录的路径; n mode:默认的mode0777,意味着最大可能的访问权。mode:默认的 mode 是 0777,意味着最大可能的访问权。mode在windows下被忽略。 注意mode的值为八进制。nmode的值为八进制。 n recursive:如果指定的路径的上级目录不存在,则也会递归创建。 ü 返回值:成功时返回TRUE,失败时返回FALSE。

<?php
//创建一个新的目录
$dirname = "./public/a/b/c/d";
//第1个参数:目录名称
//第2个参数:目录访问权限,0777最大权限
//第3个参数:如果上层目录不存在,则会递归创建
mkdir($dirname,0777,true);

判断当前文件,是文件,还是目录is_dir()

ü 描述:判断给定文件名是否是一个目录。 ü 语法:bool is_dir ( string $filename ) ü 返回值:如果文件名存在,并且是个目录,返回 TRUE,否则返回FALSE。

<?php
//判断当前文件,是文件,还是目录
$dirname = "./public";
if(is_dir($dirname))
{
	echo "{$dirname}是目录!";
}else
{
	echo "{$dirname}是一个文件!";
}

判断文件是否存在file_exists()

ü 语法:bool file_exists ( string $filename ) ü 提示:可以判断文件,也可以判断目录,是否存在。 返回:如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE。

<?php
//判断文件是否存在
$dirname = "./public";
if(file_exists($dirname))
{
	echo "{$dirname}文件存在!<br>";
	//如果文件存在,再判断它是目录还是普通文件
	if(is_dir($dirname))
	{
		echo "{$dirname}是一个目录!";
	}else
	{
		echo "{$dirname}不是目录!";
	}

}else
{
	echo "{$dirname}文件不存在!";
}

删除目录rmdir()

Ø 语法:bool rmdir ( string dirname)Ø参数:dirname ) Ø 参数:dirname目录路径。 Ø 返回值:成功时返回 TRUE, 或者在失败时返回 FALSE。 Ø 提示:尝试删除 dirname 所指定的目录。 该目录必须是空的,且要有相应的权限。

<?php
//判断文件是否存在
$dirname = "./public";
if(file_exists($dirname))
{
	//判断是不是目录
	if(is_dir($dirname))
	{
		//删除目录:该目录必须是空的
		rmdir($dirname);
	}
}

更改目录的访问权限chmod()

ü 描述:改变文件的访问权限 ü 语法:bool chmod ( string filename,intfilename , int mode ) ü 参数: n filename,指定文件的路径;nfilename,指定文件的路径; n mode,mode 参数包含三个八进制数按顺序分别指定了所有者、所有者所在的组以及所有人的访问限制。每一部分都可以通过加入所需的权限来计算出所要的权限。数字 1 表示使文件可执行,数字 2 表示使文件可写,数字 4 表示使文件可读。加入这些数字来制定所需要的权限。 n 提示:在window下文件的只读权限是 0444。文件夹只读权限0555。 ü 注意:此函数不能作用于远程文件。

$dirname = "./05获取文件权限值.php";
//windows会忽略权限值,而linux下才有效果
chmod($dirname,0754);

取得目录或文件访问权限fileperms()

Ø 语法:int fileperms ( string $filename ) 返回值:以十进制数字返回文件的访问权限。

<?php
//更改文件或目录的权限,权限值不能加引号
$dirname = "./05获取文件权限值.php";
//windows会忽略权限值,而linux下才有效果
chmod($dirname,0754);
//获取文件的权限值,返回十进制
$int = fileperms($dirname);
//十进制转成8进制
$int = decoct($int);
//截取字符串:40777转成0777
echo substr($int,2);