php目录

一、php操作目录

1、创立一个新的目录mkdir()

bool mkdur(路径名,访问权限,true/false)

(1)访问权限 为四位数字数字,不能加引号。其中:第二个数是指文件所有者的权限,第三个是文件所在组的权限,第四个是全部人的权限.

(1 表示使文件可执行,数字 2 表示使文件可写,数字 4 表示使文件可读)这里面权限叠加是通过数学加法实现的。(如7=4+2+1;三种权限都有)

(2)第三个参数是是否递归创建,为true时如果上册目录为空,他会自己生产一个上层目录,为false会报错。

2、判断是否是一个目录is_dir

bool is_dir(路径名)

如果文件名存在,并且是个目录,返回 TRUE,否则返回FALSE

3、判断目录或者文件是否存在file_exists

bool file_exists(路径名)

可以判断文件,也可以判断目录,是否存在

判断是否存在一个文件,一般是先判断是否存在,如果存在,在判断是否为目录,不是目录,就是文件了

##4、删除目录rmdir()##

bool rmdir(路径名)

要删除的目录里面要为空,且必须要有相关权限
##5、更改要访问的权限chmod()

bool chmod(路径名,更改后的权限)

window中可以读是最低权限,还有这个函数不能远程使用
##6、取得目录或文件访问权限fileperms()

int fileperms(路径名)

返回值是是十进制的文件访问权限

##7、重命名活移动文件rename()

bool rename(原名称,新名称)

如果原目录和新目录在一个父目录下,叫改名

如果不在同一父目录叫移动

##8、打开目录opendir()

resource opndir(路径名)

返回值:如果成功则返回目录句柄的 resource,失败则返回 FALSE。

##9、读取目录中的条目readdir()

string readdir(储存目录句柄的变量)

成功则返回文件名 或者在失败时返回 FALSE

第一次取会返回当前目录.

第二次取会返回上层目录…

这上面两个只是一个标志,不是真正的目录。
##10、显示中文目录或者文件
string iconv(输入的字符集,输出的字符集,要转换的字符串)
返回:返回转换后的字符串, 或者在失败时返回 FALSE。

##11、关闭目录句柄closedir()
void closedir(目录句柄)



#二、递归思想来实例#

递归的优点:可以把一个复杂的问题转换一个相似的小问题

递归的缺点:运行效率不高

##1、打开目录

<?php
//读取第一层的所有文件或者目录
function show_all_file($dir)
{
	//打开
	$headle=opendir($dir);
	echo "<ul>";
	//读取数据
	while($link_dir=readdir($headle))
	{
		if($link_dir!='.'&&$link_dir!='..')
		{
			echo "<li>".$link_dir."</li>";
		}
		else
		{
			continue;//如果这个是本层目录或者返回上一层没有被continue,他会一直被递归,进入死循环
		}
		if(is_dir($dir."/".$link_dir))
		{
			show_all_file($dir."/".$link_dir);
		}
	}
	echo "</ul>";

	closedir($headle);
}
$dir="./../public";
show_all_file($dir);
?>

##2、打开文件fopen()

resource fopen(文件路径,打开文件的方式)

提示:为移植性考虑,在用 fopen()打开文件时总是在打开文件方式后加 ‘b’ 标记。为binary

打开方式有

  1. 只读不写–‘r’(指针指向文件头);
  2. 有就格式化写入,没有就创建写入的–‘w’(指针指向文件头);
  3. 有就写在文件尾部,没有就创建写入–‘a’(指针指向文件尾);
  4. 创建文件写入,如果文件有了就返回–FALSE(指针指向文件头);
  5. 在后面加+,都可以读写;

##3、关闭文件fclose()
bool fclose(resource型)

##4、读取指定大小文件内容fread()
string fread(resource型,要读取的最多字节)

提取文件中的字节,可以使用filesize(文件路径名);

提示:在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen() 函数的 mode 参数要加上 ‘b’;

###如果在读取的数据是图片,视频等时,要告诉浏览器它是什么,否则默认为文本
//这表示一张图片

##5、读取一行内容fgets()

string fgets(resource型,最多字节大小)

最多里面买一些,是默认为1K

##6、读取文件内容到数组中file()
arrayfile(文件路径,附加选项)

这个不需要打开关闭文件

附加选项

  1. FILE_USE_INCLUDE_PATH(1):在include_path 中查找文件;
  2. FILE_IGNORE_NEW_LINES(2):在数组的每个元素末尾不添加换行符;
  3. FILE_SKIP_EMPTY_LINES(4):跳过空行。

##7、读取文件内容到字符串中file_get_contents()
string file_get_contents(文件路径)

这个不需要打开关闭文件

##8、写入文件

int fweite(resource型,要写的内容)

换行windows下位\r\n,linux换行符位\n


版权声明:本文为qq_44981657原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。