この記事の内容はphpファイルの操作に関するもので、困っている人は参考にしてください。まだやっていません。そこで、この機会にファイルの書き込み手順を確認してみました
同時実行を防ぐためにファイルロックを作成します
これらのデータをこのファイルに書き込みます
ロックを解除してファイルハンドルを閉じます
ファイルを読み取る手順
ファイルからデータを読み取る
このファイルを閉じる
ファイルを開く操作
fopen($filename,$mode,$include_path,$context)
fopen($filename,$mode,$include_path,$context)
打开失败返回false 打开成功则返回资源对象。
属性名称 | 作用 |
---|---|
$filename | 文件的路径(文件路径的间隔符用‘/’来表示,用’’可能会导致linux不识别) |
$mode | 文件访问的形式(写 |
$include_path | (可选)从指定目录开始寻找文件所在位置 |
$context | 可选。规定文件句柄的环境。Context 是可以修改流的行为的一套选项。 |
注意:
- 当文件的前缀是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()
函数
1. file_put_contents() 描述 file_put_contents(file,data,mode,context) 相当于一句话执行 fopen(),fwrite(),fclose()
fclose($fp) 如果成功返回true,反之false
$fp = fopen('./test.php','a')//以只读方式打开 flock($fp,LOCK_SH);//读操作锁定 while(!feof($fp)) { $order = fgets($fp); echo $order } fclose($fp)//关闭文件 # feof($fp) //检测文件是否读取到文件结束标志 //文件读写的几种操作 /*读取一行内的文字*/ # fgets($fp) //获取文件一行字符 # (更加安全的操作,过滤了php和html标签)fgetss($fp,10,'<a>')//三个参数 1.文件资源 2.限制每次获取的长度(如为0则不限制长度) 3.允许通过的标签 # fgetcsv($fp,0,"/t") 以"/t"为分隔符,分割我数组 /*读取整个文件*/ # (不需要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)
file_exists("路径"); //文件是否存在filesize("路径"); //文件大小unlink; //删除文件
函数:`fclock($fp,’操作值’);//开启锁
操作值 | 意义 |
---|---|
LOCK_SH | 读操作锁定,可以共享,其他人可以读该文件 |
LOCK_EX | 写操作锁定,互斥锁 |
LOCK_UN | 释放已有的锁 |
LOCK_NB | 防止在请求枷锁时发生柱塞 |
虽说这是很基础的东西,惭愧的是我却对此并不是很了解。所以借此温故了一下
打开这个文件。如果文件不存在,那么创建它。
创建文件锁,防止并发
将这些数据写入这个文件
释放锁,并且关闭文件句柄
打开这个文件,如果不能打开就退出
从文件中读取数据
关闭这个文件
fopen($filename,$mode,$include_path,$context)
属性名
$filename | |
---|---|
$mode | ファイルアクセスの形式 (write |
$include_path | (オプション)は、指定されたディレクトリから開始してファイルの場所を見つけます |
$context | オプション。ファイル ハンドルは OK です。ストリームの動作を変更するための一連のオプション |
注: - ファイル プレフィックスが ftp:// (ファイル サーバー) の場合、これは関数は、指定されたサーバーへのパッシブ モード接続を確立し、ファイルの先頭へのポインターを返します。 - ファイルのプレフィックスが http:// の場合、指定されたサーバーへの http 接続が確立されます。段ボールの http レスポンスへのポインタが返されます - Linux でファイル操作を実行します |
1.`fwrite()` 描述 `int fwrite ( resource $handle , string $string [, int $length ] )` $string 写入的字符 $length 限制写入的长度
fopen()
関数を呼び出す必要があります🎜1. file_put_contents() 描述 file_put_contents(file,data,mode,context) 相当于一句话执行 fopen(),fwrite(),fclose()
fclose($fp) 如果成功返回true,反之false
$fp = fopen('./test.php','a')//以只读方式打开 flock($fp,LOCK_SH);//读操作锁定 while(!feof($fp)) { $order = fgets($fp); echo $order } fclose($fp)//关闭文件 # feof($fp) //检测文件是否读取到文件结束标志 //文件读写的几种操作 /*读取一行内的文字*/ # fgets($fp) //获取文件一行字符 # (更加安全的操作,过滤了php和html标签)fgetss($fp,10,'<a>')//三个参数 1.文件资源 2.限制每次获取的长度(如为0则不限制长度) 3.允许通过的标签 # fgetcsv($fp,0,"/t") 以"/t"为分隔符,分割我数组 /*读取整个文件*/ # (不需要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)
file_exists("路径"); //文件是否存在filesize("路径"); //文件大小unlink; //删除文件
fopen( $filename,$mode,$include_path,$context)
🎜 🎜開くのに失敗した場合は false を返し、開くのが成功した場合はリソース オブジェクトを返します。 🎜🎜🎜🎜🎜属性名🎜🎜関数🎜🎜🎜🎜🎜🎜$filename🎜🎜 ファイルのパス (ファイルパスの区切り文字は「/」で表され、''を使用するとLinuxが認識しない可能性があります) 🎜🎜🎜🎜 $mode🎜🎜 ファイルアクセスの形式 (write🎜🎜🎜🎜$include_path🎜🎜(オプション)は、指定されたディレクトリから開始してファイルの場所を見つけます🎜🎜🎜🎜$context🎜🎜オプション。ファイルハンドルはOKです ストリーム🎜🎜🎜🎜の動作を変更するためのオプションのセット。注意:
- 当文件的前缀是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()
函数
1. file_put_contents() 描述 file_put_contents(file,data,mode,context) 相当于一句话执行 fopen(),fwrite(),fclose()
fclose($fp) 如果成功返回true,反之false
$fp = fopen('./test.php','a')//以只读方式打开 flock($fp,LOCK_SH);//读操作锁定 while(!feof($fp)) { $order = fgets($fp); echo $order } fclose($fp)//关闭文件 # feof($fp) //检测文件是否读取到文件结束标志 //文件读写的几种操作 /*读取一行内的文字*/ # fgets($fp) //获取文件一行字符 # (更加安全的操作,过滤了php和html标签)fgetss($fp,10,'<a>')//三个参数 1.文件资源 2.限制每次获取的长度(如为0则不限制长度) 3.允许通过的标签 # fgetcsv($fp,0,"/t") 以"/t"为分隔符,分割我数组 /*读取整个文件*/ # (不需要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)
file_exists("路径"); //文件是否存在filesize("路径"); //文件大小unlink; //删除文件
函数:`fclock($fp,’操作值’);//开启锁
操作值 | 意义 |
---|---|
LOCK_SH | 读操作锁定,可以共享,其他人可以读该文件 |
LOCK_EX | 写操作锁定,互斥锁 |
LOCK_UN | 释放已有的锁 |
LOCK_NB | 防止在请求枷锁时发生柱塞 |
以上がphpファイルの操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。