首頁  >  文章  >  後端開發  >  php 檔案的操作

php 檔案的操作

不言
不言原創
2018-04-19 11:47:334293瀏覽

這篇文章介紹的內容是關於php 檔案的操作,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

#雖說這是很基礎的東西,慚愧的是我卻對此並不是很了解。所以藉此溫故了一下

檔案進行寫入操作的步驟

  1. 開啟這個檔案。如果文件不存在,那麼創建它。

  2. 建立檔案鎖,防止並發

  3. 將這些資料寫入這個檔案

  4. 釋放鎖,並且關閉文件句柄

文件進行讀取操作的步驟

  1. 打開這個文件,如果不能打開就退出

  2. 從檔案讀取資料

  3. 關閉這個檔案

#開啟檔案動作

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

#開啟失敗回傳false 開啟成功則傳回資源物件。

#檔案的路徑(檔案路徑的間隔符號以'/'來表示,用'\'可能會導致linux不識別)檔案存取的形式(寫(可選)從指定目錄開始尋找檔案所在位置可選。前綴是ftp://即檔案伺服器時 該函數將會建立一個連接到指定伺服器的被動模式。到指定伺服器的http連接,傳回一個紙匣http回應的指標- 在Linux時執行檔案操作要注意伺服器的權限配置。
屬性名稱 作用
$filename
$mode
$include_path
$context
#模式名稱


意義

r讀取模式開啟檔案從頭開始r 讀寫模式開啟文件,從文件頭開始讀寫w 只寫模式開啟文件,從文件頭開始讀寫。 ##w 讀寫模式同上x謹慎寫如果檔案存在則傳回falsex 謹慎寫以讀寫方式開啟文件,如果文件存在則傳回falsea追加在檔案最後進行寫入動作#a 追加在文件結尾進行讀寫操作fopen()函數
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,&#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)
寫入檔案操作 A.需要呼叫
B .  不需要呼叫函數關閉檔案
其他檔案函數

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

檔案鎖定

函數:`fclock($fp,'操作值');//開啟鎖定

操作值

意義

LOCK_SH

讀取操作鎖定,可以共享,其他人可以讀取該檔案

LOCK_EX寫入作業鎖定,互斥鎖LOCK_UN釋放現有的鎖定 LOCK_NB防止在請求枷鎖時發生柱塞#雖說這是很基礎的東西,慚愧的是我卻對此並不是很了解。所以藉此溫故了一下開啟這個檔案。如果文件不存在,那麼創建它。
檔案進行寫入操作的步驟
建立檔案鎖,防止並發
將這些資料寫入這個檔案

釋放鎖,並且關閉文件句柄
  1. 文件進行讀取操作的步驟
  2. 打開這個文件,如果不能打開就退出
  3. 從檔案讀取資料
  4. 關閉這個檔案

#開啟檔案動作
  1. #fopen($filename,$mode,$include_path,$context)

  2. #開啟失敗回傳false 開啟成功則傳回資源物件。

  3. 屬性名稱

  4. 作用

$filename

#檔案的路徑(檔案路徑的間隔符號以'/'來表示,用'\'可能會導致linux不識別)$mode檔案存取的形式(寫$include_path(可選)從指定目錄開始尋找檔案所在位置$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(&#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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn