💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
文件处理函数主要应用于文件上传,在THINKPHP框架中,已经集成了相关的方法来实现上传功能,具体实例请看第八章项目经验-图片上传项目实例。这里就简单整理出一些常用的php原生方法,有时候如果不使用框架自带方法的话,还是需要使用这些函数来进行上传方法的封装。 #### **1、fopen()** 该函数用于打开文件或者创建文件。如果所带参数是w或a时,当打开并不存在的文件时,则会创建这个文件。如果所带参数为r或r+,当打开并不存在的文件时,则会抛出异常警告。 #### **2、fclose()** 函数用于关闭一个打开文件。 #### **3、fwrite()** fputs() 函数的别名。该函数用于写入文件。返回写入的字符数,出现错误时则返回 false。每次执行都会覆盖文件内容。 #### **4、fread()** fread(file,length) 该函数用于读取文件;第一个参数是要读取打开文件,第二个参数是要读取的最大字节数。 > 文件创建-写入-读取代码实例: ``` <?php /** * 使用fopen打开以w+方式 打开newfise.txt文件,如果文件不存在,则会创建文件。 * echo 返回的是字节数: 11 */ $myfile = fopen("newfise.txt", "w+") or die("Unable to open file!"); $txt = "Bill Gates\n"; echo fwrite($myfile, $txt); fclose($myfile); /** * 使用fread读取文件。 */ $file = fopen("newfile.txt","r"); echo fread($file,filesize("newfile.txt")); // 读取整个文件 echo fread($file,filesize("10")); // 从文件中读取 10 个字节 fclose($file); /** * 如果fopen以r参数打开不存在的文件 */ $file = fopen("newfilse.txt","r"); Warning: fopen(newfilse.txt): failed to open stream: No such file or directory in ``` #### **5、file_put_contents()** file_put_contents(file,data,mode,context) 函数把一个字符串写入文件中。该函数将返回写入到文件内数据的字节数。 * 该函数等同于依次调用 fopen(),fwrite() 以及 fclose(),相比之下代码量减少,在调试和维护上更加便捷。 * 该函数的mode参数,使用 FILE_APPEND,可以实现内容追加效果,不会删除文件内已有的内容。 #### **6、file_get_contents()** file_get_contents(path,include_path,context,start,max_length) 函数是用于将文件的内容读入到一个字符串中的首选方法。 * path:必须,规定要读取的文件。 * include_path:可选,如果要在include_path中搜索文件的话,可以将该参数设为1 * context:可选,规定文件句柄的环境 * start:可选,规定在文件中开始读取的位置 * max_length:可选,要读取的字节数 #### **7、file_exists()** 该函数检查文件或目录是否存在。如果指定的文件或目录存在则返回 true,否则返回 false。 #### **8、move_uploaded_file()** move_uploaded_file(file,newloc) 函数将上传的文件移动到新位置。常用于文件上传。 #### **9、unlink()** unlink() 函数删除文件。 若成功,则返回 true,失败则返回 false。 ``` <?php $file = "test.txt"; if (!unlink($file)) { echo ("Error deleting $file"); } else { echo ("Deleted $file"); } ?> ```