PHP文件相关常用函数

本文详细介绍了PHP中处理文件的几个关键函数,包括fopen()用于打开文件,flock()实现文件锁定,fseek()进行文件定位,ftruncate()截断文件,fwrite()安全写入文件,fflush()刷新缓冲区,stream_get_contents()读取流内容,以及simplexml_load_string()将XML字符串转换为对象。这些函数是PHP文件操作的基础,对于理解和操作文件至关重要。
摘要由CSDN通过智能技术生成
use \Phalcon\DI\FactoryDefault;

$config_file = FactoryDefault::getDefault()->get('config')->globals->config_path . "config.xml";
$config_file_handle = null;
if (is_writable($config_file)) {
                $config_file_handle = fopen($config_file, "r+");
} else {
                // open in read-only mode
                $config_file_handle = fopen($config_file, "r");
}
if (flock($config_file_handle, LOCK_EX)) {
                fseek($config_file_handle, 0);
                ftruncate($config_file_handle, 0);
                fwrite($config_file_handle, $xml_text);
                // flush, unlock, but keep the handle open
                fflush($config_file_handle);
                flock($config_file_handle, LOCK_UN);
} 

 

目录

 

1.fopen() 函数打开一个文件或 URL。

语法

2.flock() 函数锁定或释放文件。

语法

3.fseek() 函数在打开的文件中定位。

语法

4.ftruncate() 函数把打开文件截断到指定的长度。

语法

 5.fwrite() 函数写入文件(可安全用于二进制文件)。

语法

说明

6.fflush() 函数向打开的文件写入所有的缓冲输出。

语法

7. stream_get_contents — 读取资源流到一个字符串,返回一个字符串 或者在失败时返回 FALSE.

说明

参数

8.simplexml_load_string() 函数转换形式良好的 XML 字符串为 SimpleXMLElement 对象。

语法


1.fopen() 函数打开一个文件或 URL。

如果 fopen() 失败,它将返回 FALSE 并附带错误信息。您可以通过在函数名前面添加一个 '@' 来隐藏错误输出。

语法

fopen(filename,mode,include_path,context)

参数描述
filename必需。规定要打开的文件或 URL。
mode必需。规定您请求到该文件/流的访问类型。

可能的值:

  • "r" (只读方式打开,将文件指针指向文件头)
  • "r+" (读写方式打开,将文件指针指向文件头)
  • "w" (写入方式打开,清除文件内容,如果文件不存在则尝试创建之)
  • "w+" (读写方式打开,清除文件内容,如果文件不存在则尝试创建之)
  • "a" (写入方式打开,将文件指针指向文件末尾进行写入,如果文件不存在则尝试创建之)
  • "a+" (读写方式打开,通过将文件指针指向文件末尾进行写入来保存文件内容)
  • "x" (创建一个新的文件并以写入方式打开,如果文件已存在则返回 FALSE 和一个错误)
  • "x+" (创建一个新的文件并以读写方式打开,如果文件已存在则返回 FALSE 和一个错误)
include_path可选。如果您还想在 include_path(在 php.ini 中)中搜索文件的话,请设置该参数为 '1'。
context可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。

 

2.flock() 函数锁定或释放文件。

如果成功,该函数返回 TRUE。如果失败,则返回 FALSE。

语法

flock(file,lock,block)

参数描述
file必需。规定要锁定或释放的已打开的文件。
lock必需。规定要使用哪种锁定类型。

可能的值:

  • LOCK_SH - 共享锁定(读取的程序)。允许其他进程访问该文件。
  • LOCK_EX - 独占锁定(写入的程序)。防止其他进程访问该文件。
  • LOCK_UN - 释放一个共享锁定或独占锁定
  • LOCK_NB - 锁定的情况下避免阻塞其他进程。
block可选。若设置为 1,则当进行锁定时阻塞其他进程。

3.fseek() 函数在打开的文件中定位。

该函数把文件指针从当前位置向前或向后移动到新的位置,新位置从文件头开始以字节数度量。

成功则返回 0;否则返回 -1。注意,移动到 EOF 之后的位置不会产生错误。

语法

fseek(file,offset,whence)
参数描述
file必需。规定要在其中定位的文件。
offset必需。规定新的位置(从文件头开始以字节数度量)。
whence可选。可能的值:
  • SEEK_SET - 设定位置等于 offset 字节。默认。
  • SEEK_CUR - 设定位置为当前位置加上 offset
  • SEEK_END - 设定位置为文件末尾加上 offset (要移动到文件尾之前的位置,offset 必须是一个负值)。

4.ftruncate() 函数把打开文件截断到指定的长度。

如果成功则返回 TRUE,如果失败则返回 FALSE。

语法

ftruncate(file,size)

 

参数描述
file必需。规定要截断的打开文件。
size必需。规定新的文件大小。

 5.fwrite() 函数写入文件(可安全用于二进制文件)。

语法

fwrite(file,string,length)
参数描述
file必需。规定要写入的打开文件。
string必需。规定要写入文件的字符串。
length可选。规定要写入的最大字节数。

说明

fwrite() 把 string 的内容写入文件指针 file 处。 如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。

fwrite() 返回写入的字符数,出现错误时则返回 false。

6.fflush() 函数向打开的文件写入所有的缓冲输出。

如果成功则返回 TRUE,如果失败则返回 FALSE。

语法

fflush(file)

参数描述
file必需。规定要检查的打开文件流。

 

7. stream_get_contents — 读取资源流到一个字符串,返回一个字符串 或者在失败时返回 FALSE.

说明

stream_get_contents ( resource $handle [, int $maxlength = -1 [, int $offset = -1 ]] ) : string

与 file_get_contents() 一样,但是 stream_get_contents() 是对一个已经打开的资源流进行操作,并将其内容写入一个字符串返回。 返回的内容取决于 maxlength 字节长度和 offset 指定的起始位置。

参数

handle (resource):一个资源流(例如 fopen() 操作之后返回的结果)

maxlength (integer):需要读取的最大的字节数。默认是-1(读取全部的缓冲数据)。

offset (integer):在读取数据之前先查找指定的偏移量。如果这个数字是负数,就不进行查找,直接从当前位置开始读取。

8.simplexml_load_string() 函数转换形式良好的 XML 字符串为 SimpleXMLElement 对象。

语法

simplexml_load_string(data,classname,options,ns,is_prefix);

参数描述
data必需。规定形式良好的 XML 字符串。其他参数可选
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麦兜_冰夕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值