文件操作

1.只能操作服务器的文件

2.文件包含目录和文件

判断文件类型

var_dump(filetype("../0529"));     //返回文件的类型:目录dir 文件file,
var_dump(is_dir("../11.php")); //判断路径是不是目录,返回布尔类型
var_dump(is_file("../11.php")); //判断路径是不是文件,返回布尔类型

文件属性

echo date("Y-m-d H:i:s",fileatime("../11.php")); //上次访问时间  返回一个时间戳,使用data格式化
echo date("Y-m-d H:i:s",filectime("../11.php")); //创建时间
echo date("Y-m-d H:i:s",filemtime("../11.php")); //修改时间
echo filesize("../11.php"); //文件大小,字节为单位
var_dump(file_exists("../12.php")); //判断文件是否存在

文件路径

当前路径:./  上级目录:../  下级目录:目录/  根路径:/

如果是php里面的根(/)路径代表:磁盘的根

如果是在网页里面的根(/)路径代表:服务器的根(www目录)

echo $_SERVER['DOCUMENT_ROOT'];       //取服务器的根路径
echo basename("../11.php"); //从路径中获取带后缀的文件名
echo basename("../11.php",".php"); //从路径中获取不带后缀的文件名
echo dirname("../0529/aa.php"); //取径中除去文件名的目录
var_dump(pathinfo("../0529/aa.php")); //返回目录信息,格式为数组
echo realpath("../0529/aa.php"); //将相对路径转化为绝对路

操作目录

var_dump(glob("../tp/*.php"));     //获取目录下所有的文件*  某个后缀的*.php    通过遍历    glob    输出子文件
$attr = glob("../tp/*");
for($i=0;$i<count($attr);$i++){
echo $attr[$i]."<br>";
}

使用目录资源

$dir = opendir("");打开资源目录

closedir($dir) ;关闭资源目录

readdir($dir);读取目录下的文件,执行一次读一个

rewinddir($dir); 指针返回最初

通过目录资源遍历

echo readdir($dir); //读取目录下的文件,执行一次读一个
$dir = opendir("../tp"); //打开目录资源
while($wj = readdir($dir)){
echo $wj."<br>";
}
closedir($dir); //关闭目录资源
rewinddir($dir);//将指针重置

注意:

使用readdir()读取的第一个和第二个内容

第一个是. 代表当前目录

第二个是.. 代表上级目录

在使用目录资源遍历文件夹的时候要注意将前两个排除

目录操作

1.创建目录(文件夹)

mkdir("./test");

2.删除目录(文件夹)只能删除空的文件夹

rmdir("./test");

3.移动目录(文件夹)

rename("./test","../test11");

文件操作

touch("./test.txt");//创建文件
copy("./test.txt","../test.txt"); //复制文件
unlink("./test.docx"); //删除文件
(file_exists(
echo file_get_contents("./test.txt"); //获取文件内容:txt 页面
echo file_get_contents("http://www.baidu.com"); //远程获取内容
file_put_contents("./test.txt","hello"); //向文件写入内容
readfile("./test.txt"); //获取文件内容并且直接输出
var_dump(file("./test.txt")); //读取文件内容,返回数组,数组的每个元素对应的是一行

对文件内容进行操作

//1.打开文件资源
$fp = fopen("./test.txt","a");
//操作文件
echo fgetc($fp); //每次读一个字符
while(!feof($fp)) //判断文件是否读到末尾
{
echo fgetc($fp);
}
echo fgets($fp); //每次读一行
echo fgets($fp);
echo fread($fp,10); //读取特定长度
$str = "ni hao dhakhdak \r\n akdhka";
$str = iconv("utf-8","gb2312",$str);
fwrite($fp,$str);
//2.关闭文件资源
fclose($fp);

文件操作

写入字节数 = File_put_contents(文件地址, 内容)

写,文件不存在,自动创建。

默认为替换写:

支持使用追加写:

第三个参数使用FILE_APPEND常量表示:

File_get_contents(文件地址)

当操作的文件过大时?

不能一次性操作全部文件内容。上面的函数不适用!

使用下面的函数完成处理:

Fopen();打开文件句柄(PHP与文件间数据通道)

参数1:文件地址

参数2:打开方式(模式),打开文件后希望完成那种操作,可以在模式位置进行限制。

PHP提供了如下一些的打开模式:

R(read)读模式

W(write)替换写模式,将文件内容清零,自动创建不存在的文件。

A(append)追加写模式

X 替换写,不会自动创建不存在的文件。(只能打开已经存在的文件)

+扩展,扩展了操作。

R+ 读写模式,将文件指针放在文件开头。

W+ 读替换写模式,将文件内容清零,将文件指针放在文件开头,自动创建不存在的文件。

A+ 读追加写模式,写操作永远在文件末尾,读操作受限于文件指针。

X+ 读替换写模式,将文件内容清零,将文件指针放在文件开头,不会自动创建不存在的文件。(只能打开已经存在的文件)

在都可以执行读写时,差异在于,打开文件时,初始化的工作不同,针对初始化的文件指针位置,文件内容。

Fread(文件句柄, 长度);读取,读取指定长度的字符串内容(单位字节)

Tip:长度是有个最大值。为8192个字节。

Fgets(文件句柄,长度);读取,读取指定长度的字符串

长度,指的是会读取长度-1个字节。

除了长度外,行末也是该函数的终止读操作条件。取决于先满足那个条件。

因此也称读行函数。最常用。fgetS($handle, 1024)

fgetC(文件句柄);读取,一次读取一个字节的数据

读取指针位置字符,操作时会移动指针。

fwrite(文件句柄,写入内容);写,在指定位置写入内容,通常由文件指针指示如果是a模式,不论指针在哪里,只能在末尾写。

如果w:

fclose();

关闭句柄

Ftell()

获取指针位置

Fseek()

设置指针位置

R+:

读写都受指针影响。写替换掉原有字节写。

W+:

清空内容

A+/a:

指针位置具有不确定因素。

A+,读受指针影响,写就是追加。

Filemtime(文件地址)

文件的最后修改时间。

Filesize(文件地址)

统计目录大小。

最新文章

  1. [Leetcode] Course Schedule
  2. AutoHotkey 使用笔记
  3. some basic graph theoretical measures
  4. [CareerCup] 5.1 Insert Bits 插入位
  5. node Later定时任务
  6. Android的LinearLayout中的权重android:layout_weight
  7. NeHe OpenGL教程 第二十课:蒙板
  8. Flv 视频格式(转)
  9. Spring MVC的异常统一处理方法
  10. 食品药检所LIMS需求分析说明书
  11. flask开发restful api系列(7)-蓝图与项目结构
  12. 使用CXF做简单的WebService例子
  13. [Tips]vim设置
  14. node.js小案例_留言板
  15. 详解 JVM Garbage First(G1) 垃圾收集器(转载)
  16. pom.xml文件最详细的讲解
  17. 实战 ant design pro 中的坑
  18. Web大前端面试题-Day5
  19. 用js来实现那些数据结构及算法—目录
  20. Jenkins启动和停止服务

热门文章

  1. AJAX是什么,如何使用AJAX?
  2. Nginx 所使用的 epoll 模型是什么?
  3. Assignment5: 使用Visual Studio 进行可编码的UI测试
  4. 迭代硬阈值类算法总结||IHT/NIHT/CGIHT/HTP
  5. 英语语法 - 介词on/in/at与时间
  6. JVM 类加载器深入解析以及重要特性剖析
  7. JVM 初始化阶段的重要意义分析
  8. [root@offical nginx]# nginx -t nginx: [emerg] module &quot;/usr/lib64/nginx/modules/ngx_http_geoip_module.so&quot; version 1012002 instead of 1016001 in /usr/share/nginx/modules/mod-http-geoip.conf:1 nginx: con
  9. Tensorflow 2 flower_photos花卉数据集手动下载、离线安装、本地加载、快速读取
  10. Spring AOP Log