PHP文本操作+文件夹遍历+递归文件夹操作
1、什么是文件操作磁盘上用户能看到的逻辑数据结构文件夹和文件对文件的增删改查2、为什么要有文件操作当程序需要为某些特定操作进行文件夹或者文件处理的时候都会应用到文件操作。文件上传的时候创建目录下载文件的时候读取内容日志分析的时候读取内容文件夹操作、文件夹不属于php本身php要去操作文件夹通过资源的形式进行操作。1、建立连接。获取文件资源。opendir(路径)打开一个路径资源将路径内部的所有数据读入到内存2、获取文件夹资源里面的文件文件名readdir(路径资源)从文件夹资源中读取当前资源指针所指向的文件的名字指针会向下移动一位3、释放资源closedir(资源)释放对应的文件资源遍历文件夹将文件夹资源内部的所有文件给遍历出来。利用readdir能够读取元素并且下移指针的过程配合如果指针移出资源返回的是false来进行循环遍历。结果集指针回位rewinddir(资源)函数遍历文件夹scandir(路径)读取一个路径内部的所有文件名返回一个数组数组的每一个元素都是文件名。文件夹操作相关函数file_exists判断一个文件是否存在文件是广义路径和文件is_dir判断一个指定路径是否存在文件夹is_file判断一个指定路径是否是文件文件mkdir创建一个路径如果路径存在就会报错rmdir移除文件夹注意文件夹的删除只能删除空文件夹不能删除有文件的文件夹.和..除外getcwd获取当前工作路径chdir改变当前工作路径作业将文件上传做成按月日时分分类管理思路判断当前年月日时分秒这样的路径是否存在不存在创建存在将将文件放进去。遍历所有文件及其子目录遍历一个文件夹内的所有文件的同时如果其文件是目录那么也需要遍历出来。1.定义一个函数获取当前指定目录下面的所有文件2.先取出当前文件夹内的所有文件3.将取出的文件数组遍历输出4.修改判断逻辑所有的文件的判断都必须配合路径。5.如果文件结果是文件夹说明有子文件重新遍历获取里面的所有内容以上解决方案只能变量两层文件夹如果有多层就没有办法全部遍历处理。规律要解决的问题获取一个文件夹内的所有文件夹和文件子问题获取一个文件夹内的所有的文件夹和文件内存分析在函数内部调用函数自己实现文件夹及其字目录遍历递归1.什么是递归递归就是函数在自己内部调用函数。2.递归两个点a)递归点如果在函数内部去解决一个问题的时候发现把问题减小之后子问题与父问题函数要解决的问题一致只是规模变小这个时候就应该采用父问题的解决方案去解决子问题递归点。文件夹遍历的递归点遍历到子文件夹的时候子文件夹与外层的符文件件本质上没有区别递归点。b)递归出口当递归发生后函数内部调用了函数自己之后函数不应该无限的调用自己应该在某个点结束自己。结束点称之为递归出口文件夹遍历的递归出口读到的文件是文件不是路径递归出口是一个文件夹内没有子文件夹或者子文件夹都被遍历完。作业1.实现递归遍历文件夹及其子目录输出2.递归遍历文件夹及其子目录通过数组保存保存的数据能够被区分出是文件还是文件夹还能确定层级无限级分类静态变量二维数组文件名层级是否是目录文件操作对文件里面的对文件里面的内容内容进行读写PHP5文件操作将文件的内容整个进行读取和写入读取文件file_get_contents从一个指定的文件内读取数据内容。写入内容file_put_contents将指定的字符串写入到对应的文件注意file_put_contents如果要写入的文件不存在系统会自动创建有的话就直接写入默认的file_put_contents写入数据的时候会先清空数据再写入如果要在文件后面追加内容应该使用file_put_contents的第三个参数FILE_USE_INCLUDE_PATH先清空文件再重新写入默认的FILE_APPEND追加数据到文件末尾file操作file就是将一个文件里面的内容逐行取出存放到一个数组的元素里返回一个数组PHP4文件操作php5以前文件的操作与文件夹一样都是通过资源的形式进行操作1.获取文件资源fopen打开一个文件资源如果是通过资源形式去操作文件的话那么必须在打开文件的时候就指定操作模式。只读模式打开2.读取文件内容fgetcc代表character一次读取一个字符fgetss代表string代表可以读取多个字符取决于指定的读取长度或者是否碰到换行最多只能读取一行数据两个函数都是对当前资源指针进行操作读取之后都会将指针下移fread获取指定长度的数据直到文件结束遍历文件3.修改文件写fwrite向文件资源指针所在的位置写入数据写东西不会将当前位置已有的东西往后移而是会覆盖fputsfwrite别名没有办法在指定的中间位置去写入内容只能覆盖内容文件指针移动fseek将指针指定到对应的位置4.释放资源fclose使用对应的文件资源文件操作相关函数copy复制unlink删除文件rename重命名文件filemtimem代表modify文件最后被修改的时间filesize文件大小字节fileperms文件权限Linux下的八进制简单文件操作1.文件下载服务器的文件被下载到浏览器端所在的电脑。HTML的a标签实现下载a标签中如果出现了浏览器不能识别的文件的URL浏览器就会认为是文件附件形成文件下载php实现文件下载php需要修改一个http响应头http协议header(Content-type: application/octet-stream)服务器给浏览器的内容是二进制流式文件header(Content-Disposition: attachment; filenamefilename)告诉浏览器当前数据不需要解析是附件本地保存的时候建议使用的文件名字是filenamePHP实现下载的好处1.隐藏真实文件的路径防止别人攻击2.隐藏文件的真实内容作业1.做一个统计网站如果一个用户去请求对应的脚本文件记住当前用户的ip地址访问时间写入到对应的统计文件一个用户的一次访问占一行当用户访问的时候提示当前用户是第几次访问是第几个访客
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2519270.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!