ホームページ  >  記事  >  バックエンド開発  >  phpファイルの操作

phpファイルの操作

不言
不言オリジナル
2018-04-19 11:47:334292ブラウズ

この記事の内容はphpファイルの操作に関するもので、困っている人は参考にしてください。まだやっていません。そこで、この機会にファイルの書き込み手順を確認してみました

このファイルを開きます。ファイルが存在しない場合は作成します。

  1. 同時実行を防ぐためにファイルロックを作成します

  2. これらのデータをこのファイルに書き込みます

  3. ロックを解除してファイルハンドルを閉じます

  4. ファイルを読み取る手順

このファイルを開きます開けない場合は終了

  1. ファイルからデータを読み取る

  2. このファイルを閉じる

  3. ファイルを開く操作

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

オープンに失敗した場合は false を返し、オープンに成功した場合はリソース オブジェクトを返します。

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,&#39;<a>&#39;)//三个参数 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 防止在请求枷锁时发生柱塞

虽说这是很基础的东西,惭愧的是我却对此并不是很了解。所以借此温故了一下

文件进行写操作的步骤

  1. 打开这个文件。如果文件不存在,那么创建它。

  2. 创建文件锁,防止并发

  3. 将这些数据写入这个文件

  4. 释放锁,并且关闭文件句柄

文件进行读操作的步骤

  1. 打开这个文件,如果不能打开就退出

  2. 从文件中读取数据

  3. 关闭这个文件

打开文件操作

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

属性名

関数$filename ファイルのパス (ファイルパスの区切り文字は「/」で表され、''を使用するとLinuxが認識しない可能性があります) $mode ファイルアクセスの形式 (write$include_path(オプション)は、指定されたディレクトリから開始してファイルの場所を見つけます$contextオプション。ファイル ハンドルは OK です。ストリームの動作を変更するための一連のオプション
注:
- ファイル プレフィックスが ftp:// (ファイル サーバー) の場合、これは関数は、指定されたサーバーへのパッシブ モード接続を確立し、ファイルの先頭へのポインターを返します。
- ファイルのプレフィックスが http:// の場合、指定されたサーバーへの http 接続が確立されます。段ボールの http レスポンスへのポインタが返されます
- Linux でファイル操作を実行します
🎜Operator🎜🎜モード名🎜🎜意味🎜🎜🎜🎜🎜🎜r🎜🎜読み取りモード🎜🎜ファイルを最初から開きます🎜🎜🎜🎜r+🎜 🎜読み取り書き込みモード🎜🎜 ファイルを開き、ファイルヘッダーから読み取りと書き込みを開始します🎜🎜🎜🎜w🎜🎜書き込み専用モード🎜🎜ファイルを開きます, ファイルヘッダーから読み取りと書き込みを開始します。ファイルが存在する場合はファイルの内容をクリアし、存在しない場合はファイルを削除します🎜🎜🎜🎜 w+🎜🎜読み取り書き込みモード🎜🎜上記と同じ🎜🎜🎜🎜x🎜🎜Write慎重に🎜🎜ファイルが存在する場合は 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(&#39;./test.php&#39;,&#39;a&#39;)//以只读方式打开
flock($fp,LOCK_SH);//读操作锁定
while(!feof($fp))
{
    $order = fgets($fp);
    echo $order
}
fclose($fp)//关闭文件
# feof($fp) //检测文件是否读取到文件结束标志
//文件读写的几种操作
/*读取一行内的文字*/
# fgets($fp)  //获取文件一行字符
# (更加安全的操作,过滤了php和html标签)fgetss($fp,10,&#39;<a>&#39;)//三个参数 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;     //删除文件
🎜ファイルロック🎜🎜 関数: `fクロック($fp,'操作値') ;//ロックを開きます🎜🎜🎜🎜🎜操作値🎜🎜の意味🎜🎜🎜🎜🎜🎜LOCK_SH🎜🎜読み取り操作ロック、共有可能、他の人がファイルを読み取ることができます🎜🎜🎜🎜LOCK_EX🎜🎜書き込みロック、 🎜 🎜🎜🎜LOCK_UN🎜🎜既存のロックを解除する🎜🎜🎜🎜LOCK_NB🎜🎜シャックル要求時のプランジャーを防止する🎜🎜🎜 🎜🎜 とても基本的な事なのですが、残念ながらあまり詳しくないのでレビューしてみます。ファイルを書き込むための手順: ファイルが存在しない場合は、ファイルを作成します🎜🎜🎜🎜これらのデータをこのファイルに書き込みます🎜🎜🎜🎜 ロックを解除してファイルハンドルを閉じます🎜🎜🎜🎜ファイルを読み取る手順🎜🎜🎜🎜開けない場合はこのファイルを開きます🎜🎜🎜🎜ファイルからデータを読み取ります🎜🎜🎜🎜このファイルを閉じる🎜🎜🎜🎜ファイルを開く操作🎜🎜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(&#39;./test.php&#39;,&#39;a&#39;)//以只读方式打开
flock($fp,LOCK_SH);//读操作锁定
while(!feof($fp))
{
    $order = fgets($fp);
    echo $order
}
fclose($fp)//关闭文件
# feof($fp) //检测文件是否读取到文件结束标志
//文件读写的几种操作
/*读取一行内的文字*/
# fgets($fp)  //获取文件一行字符
# (更加安全的操作,过滤了php和html标签)fgetss($fp,10,&#39;<a>&#39;)//三个参数 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ファイルの操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。