发布时间:2020-05-31 14:21:18来源:阅读:
本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com
在面试中,考官往往喜欢基础扎实的面试者,而文件及目录处理相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中文件及目录处理相关的注意点。
不断在文件hello.txt头部写入一行"Hello world"字符串,要求代码完整
答案:
<?php
/**
* Created by 冷月小白.
* 微信公众号: 学长冷月
*/
$file = './hello.txt';
$handle = fopen($file,'r'); //以只读的方式打开文件,指针指向文件开头
$content = fread($handle,filesize($file)); //将文件全部读出
var_dump($content);
$content = "Hello World
" . $content; //拼接字符串
fclose($handle); //关闭文件
$handle = fopen($file,'w'); //以只写的方式打开文件,指针指向文件开头
fwrite($handle,$content); //写入
fclose($handle);//关闭文件
?>
文件的读取/写入操作,以及延伸出的目录操作函数,其他文件的操作。
打开函数:
fopen()函数
用来打开一个文件,打开时需要指定打开模式
"r" (只读方式打开,将文件指针指向文件头)
"r+" (读写方式打开,将文件指针指向文件头)
"w" (写入方式打开,清除文件内容,如果文件不存在则尝试创建之)
"w+" (读写方式打开,清除文件内容,如果文件不存在则尝试创建之)
"a" (写入方式打开,将文件指针指向文件末尾进行写入,如果文件不存在则尝试创建之)
"a+" (读写方式打开,通过将文件指针指向文件末尾进行写入来保存文件内容)
"x" (创建一个新的文件并以写入方式打开,如果文件已存在则返回 FALSE 和一个错误)
"x+" (创建一个新的文件并以读写方式打开,如果文件已存在则返回 FALSE 和一个错误)
"b" (以二进制的方式打开)
写入函数:
fwrite(file,string,length)
file:指定写入的文件
string:指定写入的内容
length:指定写入的最大字节数(可选)
fputs(file,string,length)
fputs() 函数是 fwrite() 函数的别名。
读取函数:
string fread ( resource $handle , int $length )
handle:文件系统指针,是典型地由 fopen() 创建的 resource(资源)。
length:规定要读取的最大字节数。
fgets(file,length)
fgets() 函数从文件指针中读取一行。
file:必需。规定要读取的文件。
length:可选。规定要读取的字节数。默认是 1024 字节。
fgetc(file)
fgetc() 函数从文件指针中读取一个字符。
关闭函数:
fclose(file)
fclose() 函数关闭一个打开文件。
不需要fopen()打开的函数:
file_get_contents(path)
file_get_contents() 把整个文件读入一个字符串中。
file_put_contents ( string $filename , mixed $data)
file_put_contents() 函数把一个字符串写入文件中。
其他:
file(path)
file() 函数把整个文件读入一个数组中。
数组中的每个元素都是文件中相应的一行,包括换行符在内。
readfile()
readfile() 函数读取一个文件,并写入到输出缓冲。
如果成功,该函数返回从文件中读入的字节数。如果失败,该函数返回 FALSE 并附带错误信息。您可以通过在函数名前面添加一个 '@' 来隐藏错误输出。
访问远程文件:
在PHP.ini中将allow_url_fopen设置为On。HTTP协议连接只能使用只读,FTP协议可以使用只读、只写。
名称相关:
basename(path)
basename() 函数返回路径中的文件名部分。
dirname(path)
dirname() 函数返回路径中的目录部分。
pathinfo(path)
pathinfo() 函数以数组的形式返回文件路径的信息。
目录读取:
opendir(path):
opendir() 函数打开目录句柄。
readdir(dir_handle):
readdir() 函数返回目录中下一个文件的文件名。
closedir(dir_handle):
closedir() 函数关闭目录句柄。
rewinddir(dir_handle);
rewinddir() 函数重置由 opendir() 创建的目录句柄。
目录删除
rmdir(dir)
rmdir() 函数删除空的目录。
目录创建
mkdir(path)
mkdir() 函数创建目录。
文件大小
filesize(filename)
filesize() 函数返回指定文件的大小(字节数)。
目录大小
disk_free_space(directory)
disk_free_space() 函数返回目录中的可用空间
disk_total_space(directory)
disk_total_space() 函数返回指定目录的磁盘总大小。
文件拷贝
copy(file,to_file)
copy() 函数复制文件。
file:必需。规定要复制的文件。
to_file:必需。规定复制文件的目的地。
删除文件:
unlink(filename)
unlink() 函数删除文件。
文件类型
filetype(filename)
filetype() 函数返回指定文件或目录的类型。
重命名文件或目录
rename(oldname,newname)
rename() 函数重命名文件或目录。
文件截取
ftruncate(file,size)
ftruncate() 函数把文件截断到指定的长度。
文件属性
file_exists(path)
file_exists() 函数检查文件或目录是否存在。
is_readable(file)
is_readable() 函数判断指定文件名是否可读。
is_writable(file)
is_writable() 函数判断指定的文件是否可写。
is_executable(file)
is_executable() 函数检查指定的文件是否可执行。
fileatime(filename)
filectime() 函数返回指定文件的上次 inode 修改时间。
fileatime(filename)
fileatime() 函数返回指定文件的上次访问时间。
filemtime(filename)
filemtime() 函数返回文件内容的上次修改时间。
文件锁
flock(file,lock)
flock() 函数锁定或释放文件。
要取得共享锁定(读取的程序),将 lock 设为 LOCK_SH
要取得独占锁定(写入的程序),将 lock 设为 LOCK_EX
要释放锁定(无论共享或独占),将 lock 设为 LOCK_UN
如果不希望 flock() 在锁定时堵塞,则给 lock 加上 LOCK_NB
文件指针
ftell(file)
ftell() 函数在打开文件中的当前位置。返回文件指针的当前位置。
fseek(file,offset)
fseek() 函数在打开的文件中定位。
该函数把文件指针从当前位置向前或向后移动到新的位置,新位置从文件头开始以字节数度量。
rewind(file)
rewind() 函数将文件指针的位置倒回文件的开头。
通过PHP函数的方式对目录进行遍历,写出程序
答案:
<?php
/**
* Created by 冷月小白.
* 微信公众号: 学长冷月
*/
//1.打开目录
//2.读取目录当中的文件
//3.如果文件类型是目录,继续打开目录
//4.读取子目录文件
//5.如果文件类型是文件,输出文件名称
function loopdir($dir)
{
$handle = opendir($dir);
while (($file = readdir($handle)) !== false)
{
if ($file != '.' && $file != '..')
{
echo $file . '<br />';
if (filetype($dir . '/' . $file) == 'dir')
{
loopdir($dir . '/' . $file);
}
}
}
closedir($handle);
}
loopdir('./');
如果这篇博文有帮助到您,可以帮冷月点一个赞或者加一个关注哦!
欢迎关注我的公众号:学长冷月,获得独家整理的学习资源和日常干货推送。
如果您对我的专题内容感兴趣,也可以关注我的博客:guoyu7.com
笔记王(KingNoteBook) V4.11 官方版
8.92M
BatteryCare(笔记本电池优化软件) v0.9.36 汉化版
1.2M
PDF批量目录生成器
5.2M
ceb文件阅读器下载
42.6M
excelrecovery(文件修复软件)V3.0 免费版
378KB
msvcp100(系统文件)2021 免费版
133.8K
msvcp110(dll文件)2021 免费版
2.6M
nt6(dll文件)v1.0 官方版
182KB
swf播放器(SWF文件播放器)v6.0.0.3 官方版
2.5MB
tpfancontrol(控制thinkpad笔记本风扇转速的软件)v0.68 免费版
1.1M
为知笔记下载
69M
印象笔记(笔记资料管理软件) v6.23.2.8859 中文版
122.6M
印象笔记导出工具Evernote2Onenote v1.2.2.206
158.06 KB
好笔头业务云笔记下载
6.46M
有道云笔记(云笔记软件) v6.10.0.1 最新版
70.3M
豆麦笔记下载
4.9M
轻笔记下载
3.8M
php开发工具(php程序开发软件) V7.3.3.0 中文版
22.56 MB
LESLIE NOTE下载
2.54M
Print Maestro 4破解版
21.1 MB
2020-04-08
Windows 8如何设置输入法
安全快速更改MySQL数据库名称
Think产品使用自制恢复光盘恢复XP系统的方法
zuihou-admin-cloud 1.6 发布,支持自动生成前端页面
mybatis
Dockerfile参考(14) – WORKDIR设置RUN CMD ENTRYPOINT等指令的工作目录
ubuntu 安装MongoDB
如何使用 Rnav2003.exe 删除卸载 Norton AntiVirusNAV 5.0/2000/2001/2002/2003
Linux网站压力测试工具webbench