Home >Backend Development >PHP Tutorial >php file operations

php file operations

不言
不言Original
2018-04-19 11:47:334309browse

The content introduced in this article is about the operation of php files. It has a certain reference value. Now I share it with everyone. Friends in need can refer to it.

Although this is a very basic thing, I am ashamed. It's me but I don't know much about it. So I took this opportunity to review the steps for writing a file

  1. Open this file. If the file does not exist, create it.

  2. Create a file lock to prevent concurrency

  3. Write these data to this file

  4. Release lock, and close the file handle

Steps for reading the file

  1. Open the file, exit if it cannot be opened

  2. Read data from the file

  3. Close this file

Open file operation

fopen($filename,$mode,$include_path,$context)

Returns false if the opening fails and returns the resource object if the opening is successful.

##$filename The path of the file (the separator of the file path is represented by '/', using '\' may cause Linux not to recognize it) $modeFile access Form (write $include_path(optional) Search for the file location starting from the specified directory$contextOptional. Specifies the context of the file handle. ##Note:
Attribute name Function
- When the file is When the prefix is ​​ftp://, which is the file server, this function will establish a passive mode connection to the specified server and return a pointer to the beginning of the file

- When the file prefix is ​​http://, a passive mode will be established. An http connection to the specified server returns a pointer to the cardboard http response
- When performing file operations on Linux, please pay attention to the permission configuration of the server

##Operator##. #Mode name##rRead modeOpen the file from the beginning r Read and write modeOpen the file and start reading and writing from the file headerw Write-only modeOpen the file and start reading and writing from the file header. If the file exists, clear the file content. If it does not exist, delete the filew Read and write modeSame as aboveReturn if the file exists falseOpen the file for reading and writing, and return false if the file existsWrite at the end of the fileAt the end of the file Read and write operations are performed at the endWrite file operationsA. You need to call fopen()function
Meaning
##x Write with caution
x Write with caution
a Append
a Append
1.`fwrite()`

描述 `int fwrite ( resource $handle , string $string [, int $length ] )`
$string   写入的字符  
$length   限制写入的长度

B. No need to call

fopen()

Function<pre class="brush:php;toolbar:false;">1. file_put_contents() 描述 file_put_contents(file,data,mode,context) 相当于一句话执行 fopen(),fwrite(),fclose()</pre>Close file

fclose($fp)

如果成功返回true,反之false

Read operation<pre class="brush:php;toolbar:false;">$fp = fopen(&amp;#39;./test.php&amp;#39;,&amp;#39;a&amp;#39;)//以只读方式打开 flock($fp,LOCK_SH);//读操作锁定 while(!feof($fp)) { $order = fgets($fp); echo $order } fclose($fp)//关闭文件 # feof($fp) //检测文件是否读取到文件结束标志 //文件读写的几种操作 /*读取一行内的文字*/ # fgets($fp) //获取文件一行字符 # (更加安全的操作,过滤了php和html标签)fgetss($fp,10,&amp;#39;&lt;a&gt;&amp;#39;)//三个参数 1.文件资源 2.限制每次获取的长度(如为0则不限制长度) 3.允许通过的标签 # fgetcsv($fp,0,&quot;/t&quot;) 以&quot;/t&quot;为分隔符,分割我数组 /*读取整个文件*/ # (不需要fopen()操作) readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] ) //返回文件字符长度,!!!并且直接把内容输出到浏览器上 # fpassthru( resource $handle ) //返回boolean值 # file ( string $filename [, int $flags = 0 [, resource $context ]] )//把整个文件读入一个数组中,对每一行作为一个元素保存 /*读取一个字符*/ # fgetc() /*读取任意长度字符*/ # fread($fp,$legth)</pre>Other file functions

file_exists("路径");   //文件是否存在filesize("路径"); //文件大小unlink;     //删除文件

File lock

Function: `fclock($fp,'operation value');//Open lock

Operation value

Meaning The read operation is locked and can be shared. Others can read the fileAlthough this is a very basic thing, I am ashamed that I don’t know much about it. So I took this opportunity to review the steps for writing a file
LOCK_SH
LOCK_EX Write operation lock, mutex lock
LOCK_UN Release existing lock
LOCK_NB Prevent the plunger from occurring when requesting shackles

Open this file. If the file does not exist, create it.

    Create a file lock to prevent concurrency
  1. Write these data to this file
  2. Release lock, and close the file handle
  3. Steps for reading the file
  4. Open the file, exit if it cannot be opened

    Read data from the file
  1. Close this file
  2. Open file operation
  3. fopen($filename,$mode,$include_path,$context)

Returns false if the opening fails and returns the resource object if the opening is successful.

Attribute name

Function##$filename The path of the file (the separator of the file path is represented by '/', using '\' may cause Linux not to recognize it) $modeFile access Form (write $include_path(optional) Search for the file location starting from the specified directory$contextOptional. Specifies the context of the file handle. ##

注意:
- 当文件的前缀是ftp://即文件服务器时  该函数将会建立一个连接到指定服务器的被动模式。并返回一个指向文件开始位置的指针
- 当文件前缀是http://时,会建立一个到指定服务器的http连接,返回一个纸箱http响应的指针
- 在Linux时执行文件操作要注意服务器的权限配置。

操作符 模式名称 意义
r 读模式 打开文件从头开始
r+ 读写模式 打开文件,从文件头开始读写
w 只写模式 打开文件,从文件头开始读写。如文件存在,清空文件内容,如不存在则穿件文件
w+ 读写模式 同上
x 谨慎写 如果文件存在则返回false
x+ 谨慎写 以读写方式打开文件,如果文件存在则返回false
a 追加 在文件末尾进行写操作
a+ 追加 在文件末尾进行读写操作

写文件操作

A. 需要调用 fopen()函数

1.`fwrite()`

描述 `int fwrite ( resource $handle , string $string [, int $length ] )`
$string   写入的字符  
$length   限制写入的长度

B .  不需要调用fopen()函数

<pre class="brush:php;toolbar:false;">1. file_put_contents() 描述 file_put_contents(file,data,mode,context) 相当于一句话执行 fopen(),fwrite(),fclose()</pre>

关闭文件

fclose($fp)

如果成功返回true,反之false

读操作

<pre class="brush:php;toolbar:false;">$fp = fopen(&amp;#39;./test.php&amp;#39;,&amp;#39;a&amp;#39;)//以只读方式打开 flock($fp,LOCK_SH);//读操作锁定 while(!feof($fp)) { $order = fgets($fp); echo $order } fclose($fp)//关闭文件 # feof($fp) //检测文件是否读取到文件结束标志 //文件读写的几种操作 /*读取一行内的文字*/ # fgets($fp) //获取文件一行字符 # (更加安全的操作,过滤了php和html标签)fgetss($fp,10,&amp;#39;&lt;a&gt;&amp;#39;)//三个参数 1.文件资源 2.限制每次获取的长度(如为0则不限制长度) 3.允许通过的标签 # fgetcsv($fp,0,&quot;/t&quot;) 以&quot;/t&quot;为分隔符,分割我数组 /*读取整个文件*/ # (不需要fopen()操作) readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] ) //返回文件字符长度,!!!并且直接把内容输出到浏览器上 # fpassthru( resource $handle ) //返回boolean值 # file ( string $filename [, int $flags = 0 [, resource $context ]] )//把整个文件读入一个数组中,对每一行作为一个元素保存 /*读取一个字符*/ # fgetc() /*读取任意长度字符*/ # fread($fp,$legth)</pre>

其他文件函数

file_exists("路径");   //文件是否存在filesize("路径"); //文件大小unlink;     //删除文件

文件锁

函数:`fclock($fp,’操作值’);//开启锁

操作值 意义
LOCK_SH 读操作锁定,可以共享,其他人可以读该文件
LOCK_EX 写操作锁定,互斥锁
LOCK_UN 释放已有的锁
LOCK_NB 防止在请求枷锁时发生柱塞
相关推荐:

php的命名空间和自动加载


The above is the detailed content of php file operations. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn