當前位置:才華齋>計算機>php語言>

PHP檔案怎麼操作

php語言 閱讀(1.79W)

在平時我們可能會碰到過php檔案,可是很多使用者不知道php檔案是什麼檔案?也不知道怎麼開啟php檔案?下面是相關的知識,歡迎閱讀。

PHP檔案怎麼操作

$file = "./test/";

//===============判斷檔案能不能讀取(許可權問題),或者存不存在

if (is_readable($file) == false) {

echo "

";

die('no');

}

//===============判斷檔案存不存在

if (file_exists($file) == false) {

echo "

";

die('no file');

}

//======================================================讀取檔案內容

//方法一

$dataString = file_get_contents($file);

echo "

1";

var_dump($dataString);

echo htmlentities($dataString);

//方法二,該方法如果檔案內容空會報錯

$fJuBing = fopen($file, 'r'); //建立指定檔案讀操作的控制代碼

$dataString = fread($fJuBing, filesize($file));

fclose($fJuBing);

echo "

2";

var_dump($dataString);

echo htmlentities($dataString);

/*

fopen()方法的第二個引數可以選擇以下值

"r" 只讀方式開啟,將檔案指標指向檔案頭。

"r+" 讀寫方式開啟,將檔案指標指向檔案頭。

"w" 寫入方式開啟,將檔案指標指向檔案頭並將檔案大小截為零。如果檔案不存在則嘗試建立之。

"w+" 讀寫方式開啟,將檔案指標指向檔案頭並將檔案大小截為零。如果檔案不存在則嘗試建立之。

"a" 寫入方式開啟,將檔案指標指向檔案末尾。如果檔案不存在則嘗試建立之。

"a+" 讀寫方式開啟,將檔案指標指向檔案末尾。如果檔案不存在則嘗試建立之。

"x" 建立並以寫入方式開啟,將檔案指標指向檔案頭。如果檔案已存在,則 fopen() 呼叫失敗並返回 FALSE,並生成一條 E_WARNING 級別的錯誤資訊。如果檔案不存在則嘗試建立之。

這和給底層的 open(2) 系統呼叫指定 O_EXCL|O_CREAT 標記是等價的。

此選項被 PHP 4.3.2 以及以後的版本所支援,僅能用於本地檔案。

"x+" 建立並以讀寫方式開啟,將檔案指標指向檔案頭。如果檔案已存在,則 fopen() 呼叫失敗並返回 FALSE,並生成一條 E_WARNING 級別的錯誤資訊。如果檔案不存在則嘗試建立之。

這和給底層的 open(2) 系統呼叫指定 O_EXCL|O_CREAT 標記是等價的。

此選項被 PHP 4.3.2 以及以後的版本所支援,僅能用於本地檔案。

*/

//方法三

$dataString = implode('', file($file));

echo "

3";

var_dump($dataString);

echo htmlentities($dataString);

//===============判斷檔案能不能寫入

if (is_writable($file) == false) {

echo "

";

die("can`t write");

}

//======================================================往檔案中寫入內容,原內容將被覆蓋,並且如果檔案不存在將嘗試建立

$writeData = 'i want';

//方法一

file_put_contents($file, $writeData);

//或者加引數,無該檔案建立,有則在檔案內容結尾處寫入新內容

//file_put_contents($file, $writeData, FILE_APPEND);

//方法二

$fJuBing = fopen($file, 'w'); //建立指定檔案寫操作的`控制代碼

fwrite($fJuBing, $writeData);

fclose($fJuBing);

//===============有時執行寫入操作時需要鎖定檔案

$fJuBing = fopen($file, 'w');

if (flock($fJuBing, LOCK_EX)) {

fwrite($fJuBing, $writeData);

//k16-0.html" target="_blank" >釋放鎖定

flock($fJuBing, LOCK_UN);

} else {

echo "

";

echo "can`t locking file!";

}

fclose($fJuBing);

/*

flock()方法的第二個引數可以選擇以下值

LOCK_SH,(PHP 4.0.1 以前的版本中設定為 1)共享鎖定(讀取的程式)。

LOCK_EX,(PHP 4.0.1 以前的版本中設定為 2)獨佔鎖定(寫入的程式)。

LOCK_UN,(PHP 4.0.1 以前的版本中設定為 3)釋放鎖定(無論共享或獨佔)。

LOCK_NB,(PHP 4.0.1 以前的版本中設定為 4)使flock()在鎖定時不堵塞。

*/

//======================================================刪除檔案

/*

$file2 = "./test/";

if (unlink($file2)) {//有時檔案不存在刪除時會報錯,最好加上@變成@unlink($file2)

echo "

";

echo "file has been delect";

} else {

echo "

";

echo "file can`t been delect";

}

*/

//======================================================複製檔案

$file = "./test/";

$newfile = "./test/"; #這個檔案父資料夾必須能寫,如果該檔案不存在則嘗試建立再複製

if (copy($file, $newfile)) {

echo "

";

echo 'ok';

}

//===============獲取檔案最近修改時間,返回的是unix的時間戳,這在快取技術常用

echo "

";

//echo date('r', filemtime($file));

//===============(非windows系統),fileperms()獲取檔案的許可權

echo "

";

echo substr(sprintf('%o', fileperms($file)), -4);

//===============filesize()返回檔案大小的位元組數:

echo "

";

echo filesize($file);

//===============以陣列形式返回檔案的全部資訊stat()函式:

echo "

";

var_dump(stat($file));

$dir = "./test/t1";

//===============判斷該路徑資料夾是否存在

if (is_dir($dir) == false) {

echo "

";

echo "no";

}

//======================================================建立資料夾

//第二個引數可以不寫,預設是最大許可權 0777

//不能一次連續建立,即要建立的路徑資料夾的上級資料夾必須存在

mkdir($dir, 0777);

//或者建立完再賦許可權,有時Linux需要如此建立資料夾

//mkdir($dir);

//chmod($dir, 0777);

//===============返回當前路徑資料夾的資料夾名

echo "

";

echo basename($dir);

//===============返回去掉路徑中最後一個資料夾名或檔名後的路徑,成功返回字串,否則返回 FALSE 。

echo "

";

echo dirname($dir);

//===============返回給定目錄資料夾或檔案的絕對路徑

echo "

";

echo realpath($dir);

//===============獲取指定路徑資料夾下所有資料夾名,檔名

$dirJuBing = opendir($dir); //建立一個開啟指定資料夾的控制代碼

while ($fileName = readdir($dirJuBing)) { //迴圈瀝遍返回該目錄資料夾下每一個檔名資料夾名的字串,前兩個返回的字串是"."和".." ,就算是空資料夾也返回這兩個字串

echo "

";

echo $fileName;

}

closedir($dirJuBing);

//======================================================重新命名資料夾(或檔案)

//或者將指定路徑資料夾(或檔案)移動並重命名成另一路徑資料夾(或檔案),只能資料夾對資料夾,檔案對檔案

$dir = "./test/t1";

$newDirName = "./test/t2/t3";

rename($dir, $newDirName); //原"./test"下的t1資料夾移動並重命名成"./test/t2"下的t3資料夾

//======================================================刪除指定路徑資料夾

//rmdir($dir);

?>