PHP文件系统,检测、目录、权限、路径、留言本(笔记18)

网络安全自学笔记18

继续学习PHP文件系统

笔记17主要学习了PHP文件系统,创建、读写、移动、拷贝和删除文件

PHP 检测文件属性

常用文件属性函数:

bool file_exists ( $指定文件名或者文件路径)

功能:文件是否存在。

bool is_readable ( $指定文件名或者文件路径)

功能:文件是否可读。

bool is_writeable ( $指定文件名或者文件路径)

功能:文件是否可写。

bool is_executable ( $指定文件名或者文件路径)

功能:文件是否可执行。

bool is_file ( $指定文件名或者文件路径)

功能:是否是文件。

bool is_dir ( $指定文件名或者文件路径)

功能:是否是目录。

void clearstatcache ( void )

功能:清除文件的状态缓存。

假设安装界面的网址是:install.php,安装的锁文件是install.lock,可以这样检测install.lock文件是否存在。test.php文件输入以下代码,执行

如果test.php文件同目录下有install.lock文件,则执行结果如下

如果test.php文件同目录下没有install.lock文件,则执行结果如下

PHP 目录处理

基本思想如下:

1.读取某个路径的时候判断是否是文件夹

2.是文件夹的话,打开指定文件夹,返回文件目录的资源变量

3.使用readdir读取一次目录中的文件,目录指针向后偏移一次

4.使用readdir读取到最后,没有可读的文件返回false

5.关闭文件目录

函数名

功能

opendir

打开文件夹,返回操作资源

readdir

读取文件夹资源

is_dir

判断是否是文件夹

closedir

关闭文件夹操作资源

filetype

显示是文件夹还是文件,文件显示file,文件夹显示dir

例:检测C盘phpStudy文件夹下文件

PHP 文件权限设置

chmod($filename, $mode);主要是修改文件的的权限

文件和目录的基本权限

读权限(r):读取文件内容或列出目录内容

写权限(w):修改文件内容或创建新文件/目录

执行权限(x):允许进入目录,运行文件

用户和组

用户(user):文件的拥有者

组(group):文件所属的用户组

其他用户(other):除拥有者和所属组之外的其他用户

例:

PHP 文件路径

需要处理文件路径的情况:

1.文件后缀需要取出来

2.路径需要取出名字不取目录

3.只需要取出路径名中的目录路径

4.网址中的各个部分进行解析取得独立值

5.自己组成一个url出来

... ....

函数名

功能

pathinfo

返回文件的各个组成部分

basename

返回文件名

dirname

文件目录部分

parse_url

网址拆解成各部分

http_build_query

生成url 中的query字符串

http_build_url

生成一个url

例:

PHP 实现文件留言本

文件结构:

index.php ---展示输入框和留言内容

write.php ---向message.txt写入数据

message.txt ---存入聊天内容

新建index.php文件,输入以下代码

新建write.php文件,输入以下代码

下面进行验证,浏览器打开http://192.168.31.100/index.php

输入任意内容,点提交

继续输入任意内容,点提交

打开生成的message.txt文件,可看到内容


总结:

1、继续学习PHP语言

2、学习PHP文件系统,检测属性、目录处理、权限修改、路径处理、实现留言本