PHP文件系统之读取文件内容
PHP具有丰富的文件操作函数,最简单的读取文件的函数为file_get_contents,可以将整个文件全部读取到一个字符串中,也可以通过参数控制读取内容的开始点以及长度。
1 | $content = file_get_contents('./test.txt', null, null, 100, 500); |
PHP也提供类似于C语言操作文件的方法,使用fopen,fgets,fread等方法,fgets可以从文件指针中读取一行,freads可以读取指定长度的字符串。使用fopen打开的文件,最好使用fclose关闭文件指针,以避免文件句柄被占用。
1 | $fp = fopen('./text.txt', 'rb'); |
PHP文件系统之判断文件是否存在
一般情况下在对文件进行操作的时候需要先判断文件是否存在,PHP中常用来判断文件存在的函数有两个is_file与file_exists。
file_exists不仅可以判断文件是否存在,同时也可以判断目录是否存在,从函数名可以看出,is_file是确切的判断给定的路径是否是一个文件。
更加精确的可以使用is_readable与is_writeable在文件是否存在的基础上,判断文件是否可读与可写。
示例:
1 | $filename = '/date/test.txt'; |
PHP文件系统之取得文件的修改时间
文件有很多元属性,包括:文件的所有者、创建时间、修改时间、最后的访问时间等。
- fileowner:获得文件的所有者
- filectime:获取文件的创建时间
- filemtime:获取文件的修改时间
- fileatime:获取文件的访问时间
示例:
1 | $mtime = filemtime($filename); |
PHP文件系统之取得文件的大小
通过filesize函数可以取得文件的大小,文件大小是以字节数表示的。
示例:
1 | $filename = '/date/test.txt'; |
PHP文件系统之写入内容到文件
与读取文件对应,PHP写文件也具有两种方式,最简单的方式是采用file_put_contents。
示例:
1 | $filename = './test.txt'; |
同样的,PHP也支持类似C语言风格的操作方式,采用fwrite进行文件写入。
示例:
1 | $fp = fopen('./test.txt', 'w'); |
PHP文件系统之删除文件
跟Unix系统命令类似,PHP使用unlink函数进行文件删除。
1 | $filename = './test.txt'; |
删除文件夹使用rmdir函数,文件夹必须为空,如果不为空或者没有权限则会提示失败。
1 | $filename = './test.txt'; |
如果文件夹中存在文件,可以先循环删除目录中的所有文件,然后再删除该目录,循环删除可以使用glob函数遍历所有文件。
1 | $filename = './test.txt'; |
PHP异常处理之抛出一个异常
从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw抛出,异常抛出之后,后面的代码将不会再被执行。
既然抛出异常会中断程序执行,那么为什么还需要使用异常处理?
异常抛出被用于在遇到未知错误,或者不符合预先设定的条件时,通知客户程序,以便进行其他相关处理,不至于使程序直接报错中断。
当代码中使用了try catch的时候,抛出的异常会在catch中捕获,否则会直接中断。
1、基本语法
try{
//可能出现错误或异常的代码
//catch表示捕获,Exception是php已定义好的异常类
} catch(Exception $e){
//对异常处理,方法:
//1、自己处理
//2、不处理,将其再次抛出
}
2、处理处理程序应当包括:
Try - 使用异常的函数应该位于 “try” 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
Throw - 这里规定如何触发异常。注意:每一个 “throw” 必须对应至少一个 “catch”,当然可以对应多个”catch”
Catch - “catch” 代码块会捕获异常,并创建一个包含异常信息的对象。
示例:
1 | //创建可抛出一个异常的函数 |
包含自定义函数文件
对于想在多处使用已封装好的自定义函数库,可以使用包含函数文件的方式,可以避免多处重写相同函数,支持.php、.html等多种web文档格式。
两种包含方式:
require/require_once
1 | require 'xxxx.php'; //同文件多次包含,多次生效 |
通过require/require_once包含的文件不存在时,会产生一个致命错误和一个警告,程序终止执行。
include/include_once
1 | include 'xxxx.php'; |
通过include/include_once包含的文件不存在时,会产生两个警告,程序继续执行。
require是一个预置行为,无条件的包含。这个函式通常放在PHP程式的最前面,PHP程式在执行前,就会先包含require所指定文件,即使可能不执行。
include是一个过程行为,有条件的包含。这个函式通常放在流程控制的处理区段中,PHP程式网页在读到include的档案时,才将它读进来,引入是有条件的,发生在程序执行时,只有条件成立时才导入,可简化编译生成的代码。
源自:本篇文章为慕课网PHP入门教程的知识总结
声明:以上内容如有不足之处,欢迎联系指正,转载请注明出处!