PHP-文件、目錄相關操作


PHP-文件、目錄相關操作

 

一  目錄操作(Directory 函數允許獲得關於目錄及其內容的信息)

 相關函數:

函數 描述
chdir() 改變當前的目錄。
chroot() 改變根目錄。
closedir() 關閉目錄句柄。
dir() 返回 Directory 類的實例。
getcwd() 返回當前工作目錄。
opendir() 打開目錄句柄。
readdir() 返回目錄句柄中的條目。
rewinddir() 重置目錄句柄。
scandir() 返回指定目錄中的文件和目錄的數組。

 

ps:詳解:http://www.w3school.com.cn/php/php_ref_directory.asp

 

二  文件操作

運行環境區別:當在 Unix 平台上規定路徑時,正斜杠 (/) 用作目錄分隔符。而在 Windows 平台上,正斜杠 (/) 和反斜杠 (\) 均可使用。

相關函數:

函數 描述 PHP
basename() 返回路徑中的文件名部分。 3
chgrp() 改變文件組。 3
chmod() 改變文件模式。 3
chown() 改變文件所有者。 3
clearstatcache() 清除文件狀態緩存。 3
copy() 復制文件。 3
delete() 參見 unlink() 或 unset()。  
dirname() 返回路徑中的目錄名稱部分。 3
disk_free_space() 返回目錄的可用空間。 4
disk_total_space() 返回一個目錄的磁盤總容量。 4
diskfreespace() disk_free_space() 的別名。 3
fclose() 關閉打開的文件。 3
feof() 測試文件指針是否到了文件結束的位置。 3
fflush() 向打開的文件輸出緩沖內容。 4
fgetc() 從打開的文件中返回字符。 3
fgetcsv() 從打開的文件中解析一行,校驗 CSV 字段。 3
fgets() 從打開的文件中返回一行。 3
fgetss() 從打開的文件中讀取一行並過濾掉 HTML 和 PHP 標記。 3
file() 把文件讀入一個數組中。 3
file_exists() 檢查文件或目錄是否存在。 3
file_get_contents() 將文件讀入字符串。 4
file_put_contents() 將字符串寫入文件。 5
fileatime() 返回文件的上次訪問時間。 3
filectime() 返回文件的上次改變時間。 3
filegroup() 返回文件的組 ID。 3
fileinode() 返回文件的 inode 編號。 3
filemtime() 返回文件的上次修改時間。 3
fileowner() 文件的 user ID (所有者)。 3
fileperms() 返回文件的權限。 3
filesize() 返回文件大小。 3
filetype() 返回文件類型。 3
flock() 鎖定或釋放文件。 3
fnmatch() 根據指定的模式來匹配文件名或字符串。 4
fopen() 打開一個文件或 URL。 3
fpassthru() 從打開的文件中讀數據,直到 EOF,並向輸出緩沖寫結果。 3
fputcsv() 將行格式化為 CSV 並寫入一個打開的文件中。 5
fputs() fwrite() 的別名。 3
fread() 讀取打開的文件。 3
fscanf() 根據指定的格式對輸入進行解析。 4
fseek() 在打開的文件中定位。 3
fstat() 返回關於一個打開的文件的信息。 4
ftell() 返回文件指針的讀/寫位置 3
ftruncate() 將文件截斷到指定的長度。 4
fwrite() 寫入文件。 3
glob() 返回一個包含匹配指定模式的文件名/目錄的數組。 4
is_dir() 判斷指定的文件名是否是一個目錄。 3
is_executable() 判斷文件是否可執行。 3
is_file() 判斷指定文件是否為常規的文件。 3
is_link() 判斷指定的文件是否是連接。 3
is_readable() 判斷文件是否可讀。 3
is_uploaded_file() 判斷文件是否是通過 HTTP POST 上傳的。 3
is_writable() 判斷文件是否可寫。 4
is_writeable() is_writable() 的別名。 3
link() 創建一個硬連接。 3
linkinfo() 返回有關一個硬連接的信息。 3
lstat() 返回關於文件或符號連接的信息。 3
mkdir() 創建目錄。 3
move_uploaded_file() 將上傳的文件移動到新位置。 4
parse_ini_file() 解析一個配置文件。 4
pathinfo() 返回關於文件路徑的信息。 4
pclose() 關閉有 popen() 打開的進程。 3
popen() 打開一個進程。 3
readfile() 讀取一個文件,並輸出到輸出緩沖。 3
readlink() 返回符號連接的目標。 3
realpath() 返回絕對路徑名。 4
rename() 重名名文件或目錄。 3
rewind() 倒回文件指針的位置。 3
rmdir() 刪除空的目錄。 3
set_file_buffer() 設置已打開文件的緩沖大小。 3
stat() 返回關於文件的信息。 3
symlink() 創建符號連接。 3
tempnam() 創建唯一的臨時文件。 3
tmpfile() 建立臨時文件。 3
touch() 設置文件的訪問和修改時間。 3
umask() 改變文件的文件權限。 3
unlink() 刪除文件。 3

 

 ps:詳解:http://www.w3school.com.cn/php/php_ref_filesystem.asp

 

相關詳解:

1. fopen -- 打開文件或者 URL

mode 說明
'r' 只讀方式打開,將文件指針指向文件頭。
'r+' 讀寫方式打開,將文件指針指向文件頭。
'w' 寫入方式打開,將文件指針指向文件頭並將文件大小截為零。如果文件不存在則嘗試創建之。
'w+' 讀寫方式打開,將文件指針指向文件頭並將文件大小截為零。如果文件不存在則嘗試創建之。
'a' 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
'a+' 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
'x' 創建並以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗並返回 FALSE,
'x+' 創建並以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗並返回 FALSE
eg:

$handle = fopen("/home/rasmus/file.txt", "r");

 

2. file -- 把整個文件讀入一個數組中(此函數是很有用的)
和 file_get_contents() 一樣,只除了 file() 將文件作為一個數組返回。數組中的每個單元都是文件中相應的一行,包括換行符在內。如果失敗 file() 返回 FALSE。
eg:

代碼
$lines = file('http://www.example.com/');
// 在數組中循環,顯示 HTML 的源文件並加上行號。
foreach ($lines as $line_num => $line) {
echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
// 另一個例子將 web 頁面讀入字符串。參見 file_get_contents()。
$html = implode('', file ('http://www.example.com/'));

 

3. fgets -- 從文件指針中讀取一行
從 handle 指向的文件中讀取一行並返回長度最多為 length - 1 字節的字符串。碰到換行符(包括在返回值中)、EOF 或者已經讀取了 length - 1 字節后停止(看先碰到那一種情況)。如果沒有指定 length,則默認為 1K,或者說 1024 字節。
eg:

$handle = fopen("/tmp/inputfile.txt", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}

 

4. fgetss -- 從文件指針中讀取一行並過濾掉 HTML 標記
和 fgets() 相同,只除了 fgetss 嘗試從讀取的文本中去掉任何 HTML 和 PHP 標記。

   可以用可選的第三個參數指定哪些標記不被去掉


   另:對的目錄的操作:
1. opendir -- 打開目錄句柄,打開一個目錄句柄,可用於之后的 closedir(),readdir() 和 rewinddir() 調用中。
2. readdir -- 從目錄句柄中讀取條目,返回目錄中下一個文件的文件名。文件名以在文件系統中的排序返回。
eg:

 

代碼
// 注意在 4.0.0-RC2 之前不存在 !== 運算符

if ($handle = opendir('/path/to/files')) {
echo "Directory handle: $handle\n";
echo "Files:\n";
  
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}
   
while ($file = readdir($handle)) {
echo "$file\n";
}
     closedir($handle);
}

 


3. scandir -- 列出指定路徑中的文件和目錄(很有用),返回一個 array,包含有 directory 中的文件和目錄。
默認的排序順序是按字母升序排列。如果使用了可選參數 sorting_order(設為 1),則排序順序是按字母降序排列。
eg:

$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);   

 

 

 文件操作

    1文件是否可讀:

       boolis_readable ( string filename )

         如果由 filename 指定的文件或目錄存在並且可讀則返回 TRUE

        記住 PHP 也許只能以運行 webserver 的用戶名(通常為 'nobody')來訪問文件。不計入安全模式的限制。

    2 文件是否可寫

         bool is_writable ( string filename )

        如果文件存在並且可寫則返回 TRUEfilename 參數可以是一個允許進行是否可寫檢查的目錄名。

         記住 PHP 也許只能以運行 webserver 的用戶名(通常為 'nobody')來訪問文件。不計入安全模式的限制

   3  檢查文件是否存在

    boolfile_exists ( string filename )

      如果由 filename 指定的文件或目錄存在則返回 TRUE,否則返回 FALSE


免責聲明!

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



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