| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> 一篇文章搞懂php文件系统基本操作 -> 正文阅读 |
|
[PHP知识库]一篇文章搞懂php文件系统基本操作 |
????????作为一门服务端的编程语言,php自然是对服务器的文件系统提供了操作支持,一个完整的网站项目,经常会用到文件系统的方法,本文对文件系统进行详细的介绍。 两个简单的读取/写入函数
????????这两个函数是最简单的文件操作函数,实际上他们不仅可以用于本地文件操作,也可以操作远程文件,获取网页内容最基本的操作方法就是利用file_get_content(),他的作用是获取某个文件的内容,返回的内容是一个字符串,即文件的内容。 ????????
????????除了第一个参数path以外,其他四个参数都是可选的,并且很少使用,这里只对其进行简单的演示: ????????$str=file_get_contents("demo.txt"); //读取当前脚本同级目录下的demo.txt文件 ????????$str=file_get_contents("demo.txt",1,NULL,10,100) //读取demo.txt文件,并且从第11个字符开始读取,只读取100个字符。 ??????
????????file_put_contents()是对文件进行写入操作,参数的解释:
????????1.FILE_USE_INCLUDE_PATH: ????????如果设置了 FILE_USE_INCLUDE_PATH,那么将检查 *filename* 副本的内置路径 ????????2.FILE_APPEND: ????????默认情况下,写入任何内容都会直接替换此文件内容,如果mode设置为FILE_APPEND,就会在不改动原有的内容的基础上在文件的内容末尾插入要写入的数据。 ????????3.LOCK_EX ????????设置此参数,在写入之后会锁定该文件。 文件处理系统????????上面两种方法是简单的修改单个文件的方法,实际上php提供了非常强大的文件系统支持!文件处理系统将文件处理系统化,过程化,并且提供了非常多的操作方法,它可以像你在windows窗口内操作文件一样。
????????对一个文件进行操作,首先要打开一个文[[件,fopen()函数就是打开文件的函数,他类似于你在电脑上用记事本打开一个文件,当你通过fopen打开一个文件后,此函数会返回一个文件资源的句柄,它就类似于你在电脑上打开文件的窗口,一个窗口对应一个文件,接下来所有对此文件的操作都是通过这个句柄(窗口) ???????
什么是文件指针? ????????文件指针大概就是你在电脑上打开文件时的鼠标指针,比如你要阅读文件,阅读的应该是鼠标指针指向的那一行,如果你要编辑文件,肯定编辑的也是鼠标指针的那一行。比如通过fopen指向尾行,即a模式的默认指向,这时候如果用fwrite写入,会在文件末尾写入,就像是你把鼠标指针放在文件窗口的最后一行,然后点击编辑。 只读/只写/读写的区别? ????????只读就是只读取文件,不可对文件进行修改,只写就是只写入文件,不能获取文件的内容,就是你看不见屏幕上有什么,只能通过键盘往文件里塞东西,读写就是即可以获取文件内容,也可以修改文件内容。 例如:
????????通过w+模式打开test.txt,即读写模式,如果test.txt这个文件里有内容,就会被清空,然后重写,如果不存在test.txt,就会创建这个文件。 ????????打开文件是为了对文件进行操作,当你双击一个文件在窗口打开以后,或是阅读它的内容,或是编辑它的内容,首先我们介绍如何阅读文件内容? 2.fread()函数 ????????fread就是读取文件的函数,把它想象成你的目光,你可以控制你的目光能够看到多少内容。 ????
例:
????????从aaa.txt中在首行开始读取100个字符的内容。 ????????fread()中第二个参数读取内容的长度是必须的,因此如果你不能确定文件含有多少内容仅仅使用fread 函数是很难读取所有内容的。 ????????但是我们可以配合filesize()函数来读取整个文件内容 3.filesize() ????????filesize()是函数的功能是判断某个文件的大小,单位也是字节,而fread也是通过字节作为单位来读取文件内容的,所以通过filesize计算的文件大小,其实也就是整个文件内包含的字符的长度。
????????参数path是文件路径,注意不是文件指针吗,而是路径! 例:通过filesize()与fread配合读取文件全部内容:
如果我们打开一个文件,阅读可能不止是目的,我们还要修改文件,这时候应该如何做呢?我们可以使用fwrite()函数来向文件内写入内容。 4.fwrite()
????????fwrite能否写入受fopen打开文件方式的影响,如果打开方式是r则不可写入,如果是x或x+但是文件已存在同样不可写入(并且此时会报错) ????????fwrite写入的位置也是受fopen影响的,如果fopen打开是w,则fwrite()写入时会清空文件内容,写入新数据,但是!很重要的一点,如果fwrite写入两次或者多次,后面的写入会在文件末尾插入数据,而不是清空!因为清空文件的操作是在fopen时就已经实现的,并且fwrite写入一次后会将文件指针下移一行! 例:
如果在上面的代码接着运行以下代码:
给出一个需要注意的例子:如果第三个参数设置了,一定要注意字节长度!
????????以上例子,写入内容会是一个乱码�! ????????上面已经提出了,在UTF-8编码中一个中文占据3个字节,所以如果你只写入一个字节,是不能截取到对应的字符的,这时候要根据你写入的中文字符数量来计算,以utf-8为例,一个中文占据三个字节,所以如果要写入一个中文字符需要长度为3,请注意,中文符号也占据三个字符,并且某些生僻字占据四个字符。 ????????所以上面的例子如果要写入世界两个字需要设置长度为6:
????????值得注意的是,PHP的文件系统没有提供删除文件内容的方法,但是我们可以通过将文件读取为数组的方法来实现删除文件内容。 例:
此例中使用到的新函数:
5.fclose($path) 上面的例子在最后用到了fclose(),这个函数用来关闭已经打开文件和清除指针,就像我们在电脑上打开文件,编辑完成之后需要关闭窗口和进程来释放内存一样,fclose是可以关闭打开的文件,取消占用并且释放文件指针变量。 ————————完犊子啦———————— ? |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/22 19:44:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |