| |
|
开发:
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有关文件 |
目录 1.文件环境变量
2.文件相关知识. 表示当前目录 .. 表示当前目录的上一级目录。 类似于LInux一样,创建文件要么从根目录开始,要么当前目录 YK文件夹下面有sourcce文件,YK文件夹和Default在同一目录下,所以只可以先进入上一级目录,才可以进入Default文件 在PHP中创建文件时,如果想要创建的文件在某个目录下,该目录必须要存在 3.有关文件函数fopen()函数返回一个文件指针,该指针指向文件的首地址 fopen('文件名',’打开方式‘); $fp = fopen("$document_root/orders.txt",'ab');
2.写文件fwrite($fp, $outputstring, strlen($outputstring)); $fp,:文件指针,可以理解为从哪个地方开始写 $outputstring,:要写的内容,注意:文件中的空格是’,'\t',换行是\n ?strlen($outputstring):写入的文件长度 调用这个函数的前提是,要以写的方式打开文件 3.关闭文件:fclose($fp); 打开文件之后一定要关闭 4.其他函数1.feof($fp),如果文件指针指向文件末尾则返回true,否则返回false 2.每次读取一行数据: $string = fgets($fp) $string = fgetss($fp,【length,tags】) $arr =fgetcsv() 3.读取整个文件 $int = readfile(文件路径,【include_path】); 调用readfile()函数将打开这个文件,并且将文件内容输岀到标准输出(浏览器)中, 然后再关闭这个文件。 4.读取一个字符 $ char = fgetc($fp)
5.读取任意长度 $ string = fread($fp,length); 6.文件是否存在:$int = file_exists(文件名) (判断文件是否存在)
7.确定文件大小: $int = filesize(文件名); (结合fread()函数,可以使用它们一次读取整个 文件) 8.删除一个文件:$inttrue = unlink(文件名) 9.文件锁定 假设遇到这种情况,两个客户试图同时订购同一件商品(这种情况并不少见,尤其 是当网站上遇到某种程度的网络堵塞时)。如果一个客户调用fopen()函数打开一个文件 并且开始写这个文件,而此时其他客户也调用了 fopen()函数打开这个文件并且要写这个 文件,将会出现什么情况呢?文件的最终内容是什么?第一个订单后面就是第二个订单 吗?还是恰好相反呢?订单是第一个客户的还是第二个客户的?或者将变成一些没用的东 西,就像两个订单交错在一起?这些问题的答案取决于操作系统,但是,通常都是不可 知的。 为了避免这样的问题,可以使用文件锁定的方法。在PHP中,文件锁定是通过flock() 函数来实现的。当一个文件被打开并且在进行读写操作之前,应该调用这个函数。 flock()函数原型如下所示: bool flock (resource fp,?int operation [,?int ^.wouldblock]) 还必须将一个指向被打开文件的指针和一个表示所需锁定类型的常数作为参数传递给 这个函数。如果文件锁定成功,其返回值为true,否则为false。如果获得文件锁将导致当 前的进程被阻塞(也就是,不得不等待),可选的第3个参数将包含值trueo operation参数的可能值如表下
如果打算使用flock。函数,必须将其添加到所有使用文件的脚本中;否则,就没有任 何意义° 请注意,flock。函数无法在NFS或其他网络文件系统中使用。它还无法在其他更早不 支持文件锁定的文件系统中使用,例如FATO在某些操作系统中,它是在进程级别上实现 的,因此,如果你在多线程服务器API中使用,该函数也无法正确使用。 要在这个示例中使用flock()函数,可以对processorder.php脚本进行如下所示的修改: @ $fp = fopen ("$document_root/. . /orders/orders. txt '*, ' ab1); flock($fp, LOCK_EX); if (!$fp) ( echo "<p><strong> Your order could not be processed at this time. Please try again later.</strong></p></body></htTnl>M?; exit; } fwrite($fp, $outputstring, strlen($outputstring)); flock($fp, LOCK_UN); fclose($fp); 还应该在vieworders.php脚本中添加如下所示的文件锁: @$fp = fopen("$document_root/../orders/orders.txt", 'rb'); flock($fp, LOCK_SH); // lock file for reading // read from file flock($fp, LOCK_UN); // release read lock fclose($fp); |
|
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/23 7:23:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |