一、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
打开方式有
- 只读不写–‘r’(指针指向文件头);
- 有就格式化写入,没有就创建写入的–‘w’(指针指向文件头);
- 有就写在文件尾部,没有就创建写入–‘a’(指针指向文件尾);
- 创建文件写入,如果文件有了就返回–FALSE(指针指向文件头);
- 在后面加+,都可以读写;
##3、关闭文件fclose()
bool fclose(resource型)
##4、读取指定大小文件内容fread()
string fread(resource型,要读取的最多字节)
提取文件中的字节,可以使用filesize(文件路径名);
提示:在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen() 函数的 mode 参数要加上 ‘b’;
###如果在读取的数据是图片,视频等时,要告诉浏览器它是什么,否则默认为文本
//这表示一张图片
##5、读取一行内容fgets()
string fgets(resource型,最多字节大小)
最多里面买一些,是默认为1K
##6、读取文件内容到数组中file()
arrayfile(文件路径,附加选项)
这个不需要打开关闭文件
附加选项
- FILE_USE_INCLUDE_PATH(1):在include_path 中查找文件;
- FILE_IGNORE_NEW_LINES(2):在数组的每个元素末尾不添加换行符;
- FILE_SKIP_EMPTY_LINES(4):跳过空行。
##7、读取文件内容到字符串中file_get_contents()
string file_get_contents(文件路径)
这个不需要打开关闭文件
##8、写入文件
int fweite(resource型,要写的内容)
换行windows下位\r\n,linux换行符位\n