PHP FileSystem 文件系统常用api整理总结

2025-05-27 0 94

本文实例讲述了php filesystem 文件系统常用api。分享给大家供大家参考,具体如下:

参数说明:$filename (文件的路径)

1-4 文件信息相关

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15
filetype() 判断文件类型,返回 file / dir

filesize()

filectime() 创建时间

filectime() 取得 inode信息 [理解inode 阮一峰](http://www.ruanyifeng.com/blog/2011/12/inode.html)

例子:date('y年m月d日, h:i:s',filectime($file))

filemtime() 修改时间

fileatime() 上一次访问时间

is_readable() 可读性

is_writeable() / is_writable() 可写性

is_executable() 可执行性

pathinfo()

dirname()

basename()

is_file() 检查是否为文件 且存在

file_exists( $filename ) 检测文件或目录是否存在

1-6 文件基本操作:创建、删除、剪切、重命名、拷贝

?

1

2

3

4

5
touch( $filename ) 创建文件

unlink( $filename ) 删除文件

rename( $filename, $newname ) 重命名/剪切 文件/目录

copy( $source, $dest ) 复制文件

注意:拷贝远程文件需要开启php配置选项中的allow_url_fopen=on

1-8 文件内容相关操作

文件内容操作流程

PHP FileSystem 文件系统常用api整理总结

?

1

2

3

4

5

6

7

8

9

10
fopen($filename, $mode) 打开指定文件, 以指定方式打开

//为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 'b' 标记。

$handle = fopen($filename, 'rb+') 读写方式打开

fread($handle, $length) 读取文件

fread($handle, filesize($filename)); 读取所有文件内容

fwrite($handle, $string) / fputs() 写入内容

fclose($handle) 关闭文件

ftell($handle) 返回指针位置

fseek($handle, $offset) 移动指针到指定位置

rewind($handle) 重置指针

?

1

2

3

4

5

6

7

8

9
// 例子

$filename = '2.txt';

$handle = fopen($filename, 'ab+'); // 以追加模式打开

fwrite($handle, php_eol.'abc');

// 重置指针

rewind($handle); 此处,如果不重置指针,则最后的读取$res为空字符串

$res = fread($handle, filesize($filename));

fclose($handle);

var_dump($res);

1-11 文件读取相关操作

ftruncate($handle, $size) 将文件截断到给定长度
feof($handle) 测试文件指针是否到达末尾

fgetc() 读取一个字符
fgets() 读取一行字符
fgetss() 读取一行字符,并且过滤掉html标记
strip_tags(fgets($handle)) 也可以过滤掉html标记

?

1

2

3
while(!feof($handle)){

echo fgetc($handle); // 一个一个字符读取文件,直到最后

}

1-13 csv格式操作

fgetcsv() 从文件指针中读入一行并解析csv字段
fputcsv() 将行格式化为csv在写入文件

// 例子1:
// user.csv文件内容:
1,king,12,123@qq.com
2,queen,32,test@qq.com
3,lily,23,test1@qq.com

?

1

2

3

4

5

6

7
$filename = 'user.csv';

$handle = fopen($filename, 'rb+');

$rows=[];

while($row=fgetcsv($handle)){

$rows[] = $row;

}

print_r($rows);

例子2:

?

1

2

3

4

5

6

7

8

9

10

11
$filename = 'user2.scv';

$handle = fopen($filename, 'wb+'); // 以读写的方式打开文件,如果不存在则创建文件

$data = [

['1','php','php是最好的语言'],

['2','javascript','javascript很火啊'],

['3','meteor','meteor anywhere'],

];

foreach($data as $val){

fputcsv($handle, $val);

}

fclose($handle);

1-14 简化文件写入和读取操作

file_get_contents($fliename) 读取文件函数
file_put_contents($filename, $data) 将一个字符串写入文件, 注意:这里是先将文件清空,然后再写入$data

如果不想覆盖内容,可以先把文件内容先读取出来,接着再写入

?

1

2

3

4
$filename = '1.txt';

$string = file_get_contents($filename);

$data = $string.'this is a test';

file_put_contents($filename, $data);

如果写入的是数组

1. 一维数组,则将一维数组转化为 'abc' 直接写入

?

1

2

3
$filename = '3.txt';

$data = ['a','b','c'];

file_put_contents($filename, $data);

2. 如果是二维数组 或者 多维数组,则需将数组或对象序列化后写入文件

?

1

2

3

4

5

6

7

8

9
$filename = '3.txt';

$data = [

['a','b','c'],

['d','e','f']

];

$data = serialize($data); // 序列化

file_put_contents($filename, $data);

$res = file_get_contents($filename);

print_r(unserialize($res)); // 反序列化

第二种方式:转json格式写入

?

1

2

3

4

5

6

7

8

9
$filename = '1.txt';

$data = [

['a','b','c'],

['d','e','f']

];

$data = json_encode($data); // 转json编码格式

file_put_contents($filename, $data);

$res = json_decode(file_get_contents($filename)); // 对json字符串解码

print_r($res);

原文链接:https://blog.csdn.net/qq_41893551/article/details/87104061

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP FileSystem 文件系统常用api整理总结 https://www.kuaiidc.com/71352.html

相关文章

发表评论
暂无评论