php面向對象(文件操作)


文件操作

1.只能操作服務器的文件

2.文件包含目錄和文件

判斷文件類型

var_dump(filetype("../0529"));     //返回文件的類型:目錄dir 文件file,
var_dump(is_dir("../11.php"));     //判斷路徑是不是目錄,返回布爾類型
var_dump(is_file("../11.php"));     //判斷路徑是不是文件,返回布爾類型

文件屬性

echo date("Y-m-d H:i:s",fileatime("../11.php")); //上次訪問時間  返回一個時間戳,使用data格式化
echo date("Y-m-d H:i:s",filectime("../11.php")); //創建時間
echo date("Y-m-d H:i:s",filemtime("../11.php")); //修改時間
echo filesize("../11.php");                      //文件大小,字節為單位
var_dump(file_exists("../12.php"));              //判斷文件是否存在

文件路徑

當前路徑:./  上級目錄:../  下級目錄:目錄/  根路徑:/

如果是php里面的根(/)路徑代表:磁盤的根

如果是在網頁里面的根(/)路徑代表:服務器的根(www目錄)

echo $_SERVER['DOCUMENT_ROOT'];       //取服務器的根路徑
echo basename("../11.php");            //從路徑中獲取帶后綴的文件名
echo basename("../11.php",".php");     //從路徑中獲取不帶后綴的文件名
echo dirname("../0529/aa.php");        //取徑中除去文件名的目錄
var_dump(pathinfo("../0529/aa.php"));  //返回目錄信息,格式為數組
echo realpath("../0529/aa.php");       //將相對路徑轉化為絕對路

操作目錄

var_dump(glob("../tp/*.php"));     //獲取目錄下所有的文件*  某個后綴的*.php    通過遍歷    glob    輸出子文件
$attr = glob("../tp/*");
for($i=0;$i<count($attr);$i++){
    echo $attr[$i]."<br>";
}

使用目錄資源

$dir = opendir("");打開資源目錄

closedir($dir) ;關閉資源目錄

readdir($dir);讀取目錄下的文件,執行一次讀一個

rewinddir($dir); 指針返回最初

通過目錄資源遍歷

echo readdir($dir); //讀取目錄下的文件,執行一次讀一個
$dir = opendir("../tp"); //打開目錄資源
while($wj = readdir($dir)){
    echo $wj."<br>";
}
closedir($dir); //關閉目錄資源
rewinddir($dir);//將指針重置

注意:

使用readdir()讀取的第一個和第二個內容

第一個是. 代表當前目錄

第二個是.. 代表上級目錄

在使用目錄資源遍歷文件夾的時候要注意將前兩個排除

目錄操作

1.創建目錄(文件夾)

mkdir("./test");

2.刪除目錄(文件夾)只能刪除空的文件夾

rmdir("./test");

3.移動目錄(文件夾)

rename("./test","../test11");

文件操作

touch("./test.txt");//創建文件
copy("./test.txt","../test.txt"); //復制文件
unlink("./test.docx"); //刪除文件
(file_exists(
echo file_get_contents("./test.txt"); //獲取文件內容:txt 頁面
echo file_get_contents("http://www.baidu.com"); //遠程獲取內容
file_put_contents("./test.txt","hello"); //向文件寫入內容
readfile("./test.txt"); //獲取文件內容並且直接輸出
var_dump(file("./test.txt")); //讀取文件內容,返回數組,數組的每個元素對應的是一行

對文件內容進行操作

//1.打開文件資源
$fp = fopen("./test.txt","a");
//操作文件
echo fgetc($fp); //每次讀一個字符
while(!feof($fp)) //判斷文件是否讀到末尾
{
    echo fgetc($fp);
}
echo fgets($fp); //每次讀一行
echo fgets($fp);
echo fread($fp,10); //讀取特定長度
$str = "ni hao dhakhdak \r\n akdhka";
$str = iconv("utf-8","gb2312",$str);
fwrite($fp,$str);
//2.關閉文件資源
fclose($fp);

文件操作

寫入字節數 = File_put_contents(文件地址, 內容)

寫,文件不存在,自動創建。

默認為替換寫:

支持使用追加寫:

第三個參數使用FILE_APPEND常量表示:

File_get_contents(文件地址)

操作的文件過大時?

不能一次性操作全部文件內容。上面的函數不適用!

使用下面的函數完成處理

Fopen();打開文件句柄(PHP與文件間數據通道)

參數1:文件地址

參數2:打開方式模式)打開文件后希望完成那種操作,可以在模式位置進行限制。

PHP提供了如下一些的打開模式:

Rread)讀模式

Wwrite替換寫模式,將文件內容清零自動創建不存在的文件。

Aappend)追加寫模式

X 替換寫不會自動創建不存在的文件。(只能打開已經存在文件

+擴展,擴展了操作。

R+ 讀寫模式將文件指針放在文件開頭。

W+ 讀替換寫模式,將文件內容清零,將文件指針放在文件開頭自動創建不存在的文件

A+ 讀追加寫模式寫操作永遠在文件末尾,讀操作受限於文件指針。

X+ 讀替換寫模式文件內容清零,將文件指針放在文件開頭,不會自動創建不存在的文件。(只能打開已經存在文件

都可以執行讀寫時,差異在於,打開文件時,初始化的工作不同,針對初始化的文件指針位置文件內容。

Fread(文件句柄, 長度);讀取,讀取指定長度的字符串內容(單位字節)

Tip長度是有個最大值。為8192個字節。

Fgets(文件句柄,長度);讀取,讀取指定長度的字符串

長度,指的是會讀取長度-1個字節。

除了長度外,行末也是該函數的終止讀操作條件。取決於滿足那個條件。

因此也稱讀行函數。最常用。fgetS($handle, 1024)

fgetC(文件句柄);讀取,一次讀取一個字節的數據

讀取指針位置字符,操作時會移動指針

fwrite(文件句柄,寫入內容);寫,在指定位置寫入內容,通常由文件指針指示如果是a模式,不論指針在哪里,只能在末尾寫。

如果w

fclose();

關閉句柄

Ftell()

獲取指針位置

Fseek()

設置指針位置

R+:

讀寫都受指針影響寫替換掉原有字節寫。

W+:

清空內容

A+/a:

指針位置具有不確定因素。

A+,受指針影響,寫就是追加。

Filemtime(文件地址)

文件的最后修改時間。

Filesize(文件地址)

統計目錄大小。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM