php小白到大牛下载,[PHP从小白到大牛]-019 PHP文件IO

文件相关函数/文件IO

文件信息相关

filetype()

filetype($filepath);获取文件的类型;返回的是文件的类型

返回文件的类型

参数:filepath 文件的路径

可能的值有 fifo,char,dir,block,link,file 和 unknown

如果出错则返回 FALSE

$file_path = 'sort.php';

$dir_path = '../0809';

var_dump(filetype($file_path)); // file

var_dump(filetype($dir_path)); // dir

复制代码D:\php20190701\php_code\0810\filetype.php:6:string 'file' (length=4)

D:\php20190701\php_code\0810\filetype.php:7:string 'dir' (length=3)

复制代码

filesize()

filesize($filename);获取文件的大小;返回的是字节数;

返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误

注意: 因为 PHP 的整数类型是有符号整型而且很多平台使用 32 位整型,对 2GB 以上的文件,一些文件系统函数可能返回无法预期的结果

参数:filename 文件的路径

$file_path = 'sort.php';

var_dump(filesize($file_path)); // 101字节

复制代码

filectime()

filectime($filename);获取文件的创建时间;返回的是时间戳;

返回文件创建的时间, 或者在失败时返回 FALSE

时间以 Unix 时间戳的方式返回

由于返回的是时间戳,可以使用date()函数修改日期和时区;

修改时区:date_default_timezone_set('PRC');

修改成可见日期:date('Y-m-d H:i:s',filectime($filename));

参数:filename 文件的路径

filemtime()

filemtime($filename);获取文件的修改时间;返回的是时间戳;

返回文件上次被修改的时间, 或者在失败时返回 FALSE

时间以 Unix 时间戳的方式返回,可用于 date()

(date()函数如上)

参数:filename 文件的路径

fileatime()

fileatime($filename);获取文件的最后访问时间;返回的是时间戳;

返回文件上次被访问的时间, 或者在失败时返回 FALSE

时间以 Unix 时间戳的方式返回

由于返回的是时间戳,可以使用date()函数修改日期和时区;

date()函数如上;修改时区和修改成可见日期;

参数:filename 文件的路径

$file_path = 'sort.php';

var_dump(date('Y-m-d H:i:s',filectime($file_path)));

var_dump(date('Y-m-d H:i:s',filemtime($file_path)));

var_dump(date('Y-m-d H:i:s',fileatime($file_path)));

复制代码D:\php20190701\php_code\0810\filetype.php:5:string '2019-08-10 10:52:53' (length=19)

D:\php20190701\php_code\0810\filetype.php:6:string '2019-08-10 11:15:33' (length=19)

D:\php20190701\php_code\0810\filetype.php:7:string '2019-08-10 10:52:53' (length=19)

复制代码

is_readable()

is_readable($filename);检测文件是否可读;返回布尔值;

如果由 filename 指定的文件或目录存在并且可读则返回 TRUE,否则返回 FALSE

参数:filename 文件的路径

is_writable()/is_writeable()

is_writable($filename)/is_writeable($filename);检测文件是否可写;返回布尔值;

如果文件 filename 存在并且可写则返回 TRUE

filename 参数可以是一个允许进行是否可写检查的目录名

is_writeable() 是 is_writable() 的别名

参数:filename 要检查的文件名称

$file_path = 'sort.php';

var_dump(is_readable($file_path));

var_dump(is_writable($file_path));

var_dump(is_writeable($file_path));

复制代码D:\php20190701\php_code\0810\filetype.php:5:boolean true

D:\php20190701\php_code\0810\filetype.php:6:boolean true

D:\php20190701\php_code\0810\filetype.php:7:boolean true

复制代码

is_executable()

is_executable($filename);检测文件是否可执行;返回布尔值;

判断给定文件名是否可执行

如果文件存在且可执行则返回 TRUE,错误时返回FALSE

FALSE表示文件不可执行;

参数:filename 文件的路径

$file_path = "C:\Users\Administrator\AppData\Local\Programs\Microsoft VS Code\Code.exe";

var_dump(is_executable($file_path)); // true

复制代码

is_file()

is_file($filename);检测是否为文件;返回布尔值;

判断给定文件名是否为一个正常的文件

如果文件存在且为正常的文件则返回 TRUE,否则返回 FALSE

注意: 因为 PHP 的整数类型是有符号整型而且很多平台使用 32 位整型,对 2GB 以上的文件,一些文件系统函数可能返回无法预期的结果

参数:filename 文件的路径

$file_path = 'sort.php';

$dir_path = '../0809';

var_dump(is_file($file_path)); // true

var_dump(is_file($dir_path)); // false

var_dump(is_dir($dir_path)); // true

复制代码

pathinfo()

pathinfo($filename);获取文件路径相关信息;返回一个关联数组;

参数为文件路径

返回一个关联数组包含有 path 的信息

返回关联数组还是字符串取决于 options

如果没有传入 options ,将会返回包括以下单元的数组 array:dirname,basename 和 extension(如果有),以 及filename

options例子:

echo pathinfo($filename,PATHINFO_EXTENSION);-------获取文件扩展名

options 如果指定了,将会返回指定元素;它们包括:

PATHINFO_DIRNAME

PATHINFO_BASENAME

PATHINFO_EXTENSION

PATHINFO_FILENAME

如果没有指定 options 默认是返回全部的单元

__FILE__表示文件的完整路径和文件名

$file_path = 'sort.php';

var_dump(pathinfo($file_path)); // true

复制代码D:\php20190701\php_code\0810\filetype.php:5:

array (size=4)

'dirname' => string '.' (length=1)

'basename' => string 'sort.php' (length=8)

'extension' => string 'php' (length=3)

'filename' => string 'sort' (length=4)

复制代码

dirname()

dirname($path);返回文件中的路径部分;

给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名

返回值:返回 path 的父目录

参数:path 一个路径

在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符

在其它环境下是斜线(/)

$file_path = 'C:\Users\Administrator\Downloads\Firefox Setup 69.0b11.exe';

$file_path2 = 'C:/Users/Administrator/Downloads/Firefox Setup 69.0b11.exe';

var_dump(dirname($file_path));

var_dump(dirname($file_path2));

复制代码D:\php20190701\php_code\0810\filetype.php:6:string 'C:\Users\Administrator\Downloads' (length=32)

D:\php20190701\php_code\0810\filetype.php:7:string 'C:/Users/Administrator/Downloads' (length=32)

复制代码

basename()

basename($filename,$suffix);返回路径中文件名部分;

给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名

参数:path 一个路径

在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符

在其它环境下是斜线(/)

第二个参数可选。规定文件扩展名。如果文件有 suffix,则不会输出这个扩展名。

$file_path = 'C:\Users\Administrator\Downloads\Firefox Setup 69.0b11.exe';

var_dump(basename($file_path));

复制代码D:\php20190701\php_code\0810\filetype.php:6:string 'Firefox Setup 69.0b11.exe' (length=25)

复制代码<?php

$file_path = 'C:\Users\Administrator\Downloads\Firefox Setup 69.0b11.exe';

var_dump(basename($file_path,".exe")); // 'Firefox Setup 69.0b11'

复制代码

file_exists()

file_exists($filename);检测文件或者目录是否存在;返回布尔值;

返回值:如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE

参数:filename 文件或目录的路径

$file_path = "sort.php";

$dir_path = "../0809";

$dir_path2 = "../080911";

var_dump(file_exists($file_path)); // true

var_dump(file_exists($dir_path)); // true

var_dump(file_exists($dir_path2)); // false

复制代码

文件操作相关

touch()

touch($filename,$time,$atime); 设定文件的访问和修改时间,如果文件不存在,则会创建文件;返回布尔值

参数:filename要设定的文件名

如果文件不存在,则会被创建

返回值:成功时返回 TRUE, 或者在失败时返回 FALSE

time要设定的时间, 如果没有提供参数 time 则会使用当前系统的时间

atime如果给出了这个参数,则给定文件的访问时间会被设为 atime,否则会设置 为time

如果没有给出这两个参数,则使用当前系统时间

第二个参数: 设置修改时间

第三个参数: 设置访问时间

unlink()

unlink($filename,$context);删除文件;返回布尔值;

删除 filename

参数:filename文件的路径

发生错误时会产生一个 E_WARNING 级别的错误

返回值:成功时返回 TRUE, 或者在失败时返回 FALSE

$file_path = "sort.php";

var_dump(unlink($file_path)); // true

复制代码

rename()

rename($oldname,$newname,$path);重命名或者剪切一个文件或目录;返回布尔值;

尝试把 oldname 重命名为 newname

返回值:成功时返回 TRUE, 或者在失败时返回 FALSE

path 剪切一个文件或者目录的路径

同一个路径, 一般是重命名

$old_name = "sort.php";

$new_name = "sort2.php";

var_dump(rename($old_name,$new_name)); // true, 会把sort.php删掉, 新增一个sort2.php

复制代码如果路径不一样, 可以实现剪切的效果

$old_name = "sort2.php";

$new_name = "../sort2.php";

var_dump(rename($old_name,$new_name)); // true, 实现剪切的效果

复制代码

copy()

copy($filename,$path);拷贝一个文件;返回布尔值;

$filename, 文件名

$path, 拷贝到的路径

返回值:成功时返回 TRUE, 或者在失败时返回 FALSE

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

远程copy, 相当于下载

$old_name = "sort.php";

$new_name = "sort2.php";

var_dump(copy($old_name,$new_name)); // true

复制代码<?php

$old_name = "http://pic68.nipic.com/file/20150601/2692994_151045402000_2.jpg";

$new_name = "1.jpg";

var_dump(copy($old_name,$new_name)); // 下载

复制代码

文件内容操作相关

fopen()

fopen(filename,mode)

fopen() 函数打开一个文件或 URL。

如果 fopen() 失败,它将返回 FALSE 并附带错误信息。

可以通过在函数名前面添加一个 '@' 来隐藏错误输出。

返回一个文件句柄(handle), 是一个资源类型, 需要配合其他函数使用

第二个参数: 如何打开, 打开方式

"r" (只读方式打开,将文件指针指向文件头)

"r+" (读写方式打开,将文件指针指向文件头)

"w" (写入方式打开,清除文件内容,如果文件不存在则尝试创建之)

"w+" (读写方式打开,清除文件内容,如果文件不存在则尝试创建之)

"a" (写入方式打开,将文件指针指向文件末尾进行写入,如果文件不存在则尝试创建之)

"a+" (读写方式打开,通过将文件指针指向文件末尾进行写入来保存文件内容)

如果找不到文件, r是会报错的, 但是a和w会创建一个新的文件

$file_path = "test.txt";

var_dump(fopen($file_path, 'r')); // resource

复制代码

fread()

string fread ( resource

equation?tex=handle%20%2C%20intlength )

fread() 函数读取打开的文件。

函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止运行。

该函数返回读取的字符串,如果失败则返回 FALSE。

$file_path = "test.txt";

$file = fopen($file_path, 'r');

var_dump(fread($file,99)); // hello world !

复制代码<?php

$file_path = "test.txt";

$file = fopen($file_path, 'r');

var_dump(filesize($file_path));

var_dump(fread($file,filesize($file_path))); // hello world !

复制代码

fwrite()|fput()

fwrite(file,string[,length])

fwrite() 函数将内容写入一个打开的文件中。

函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止运行。

第二个参数, 可选, 最多可以写入多少个字符

如果函数成功执行,则返回写入的字节数。如果失败,则返回 FALSE。

$file = fopen("test.txt","w");

echo fwrite($file,"Hello World. Testing!");

fclose($file);

复制代码

fclose()

fclose($file)

fclose() 函数关闭打开的文件。

该函数如果成功则返回 TRUE,如果失败则返回 FALSE。

$file = fopen("test.txt","r");

//some code to be executed

fclose($file);

复制代码

fgetc()

fgetc(file)

一次读取一个字符

$file = fopen("test.txt","r");

for ($i=0; $i < filesize('test.txt'); $i++) {

echo fgetc($file);

}

while (!feof($file)) {

echo fgetc($file);

}

复制代码

fgets()

fgets(file[,length])

复制代码

一次读取一行字符, 包括结尾的换行符

$file = fopen("test.txt","r");

while (!feof($file)) {

echo fgets($file);

}

复制代码

fgetss()

fgetss(file[,length[,tags]])

复制代码

一次读取一行, 过滤html标签

fgetcsv()

fgetcsv(file[,length[,separator[,enclosure]]])

复制代码

一次获取csv文件的一行, 把这一行内容转换成索引数组

$file = fopen("index.csv","r");

while ($arr = fgetcsv($file)) {

var_dump($arr);

}

fclose($file);

复制代码

fputcsv()

fputcsv(file,fields[,seperator[,enclosure]])

复制代码

数组转csv

$file = fopen("index.csv","r+");

$arr = [

'hello',

'world',

'!!!!'

];

var_dump(fputcsv($file, $arr));

复制代码

file_get_contents()

根据路径, 把文件的内容, 保存到一个字符串中

必选参数为文件路径, 不用指定打开方式, 如果参数是一个网址, 返回网址对应的html源代码

需要开启php.ini里面的openssl, extension=php_openssl.dll

$str = file_get_contents("index.csv");

var_dump($str);

复制代码

file_put_contents()

把字符串保存到文件

把百度的源代码保存到本地

file_put_contents('baidu.html', file_get_contents('https://www.baidu.com'));

复制代码

file()

函数把整个文件读入一个数组中。

根据换行, 一行是一个元素, 会保留后面的换行符

readfile()

读取文件内容, 保存到变量里

第一个参数: 文件路径

$str = readfile('test.txt');

var_dump($str);

复制代码

parse_ini_file()

数解析一个配置文件,并以数组的形式返回其中的设置, 参数是一个路径

var_dump(parse_ini_file("C:\phpStudy\PHPTutorial\php\php-7.2.1-nts\php.ini"));

复制代码

parse_ini_string()

把配置文件的字符串, 转换成关联数组, 参数是字符串

$ini_string = '

xdebug.profiler_output_dir="C:\phpStudy\PHPTutorial\tmp\xdebug"

xdebug.trace_output_dir="C:\phpStudy\PHPTutorial\tmp\xdebug"

zend_extension="C:\phpStudy\PHPTutorial\php\php-7.2.1-nts\ext\php_xdebug-2.8.0beta1-7.2-vc15-nts.dll"

xdebug.remote_enable = 1

xdebug.remote_autostart = 1

';

var_dump(parse_ini_string($ini_string));

复制代码

highlight_string()

把字符串中的php代码高亮, 参数是字符串

highlight_file()

把文件中的php代码高亮, 参数是文件路径

var_dump(highlight_file('test.php'));

复制代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值