在平時我們可能會碰到過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);
?>