程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php文件,文件夾(目錄)操作函數總結

php文件,文件夾(目錄)操作函數總結

編輯:關於PHP編程

php文件,文件夾(目錄)操作函數總結


本文章來給各位同學總結一下在php中一些常用的文件夾/文件目錄操作函數總結,這些只是簡單的介紹一些基礎方法做個備注。

1、創建目錄(mkdir)

bool mkdir (string $pathname [,int $mode [,bool $recursive [,resource $context ]]] )

<?php  
mkdir("/path/to/my/dir", 0777);  //成功返回true,失敗返回false;

2、判斷文件是否存在(file_exist)

bool file_exists (string $filename )

<?php  
$filename = '/path/to/phpernote.txt';
echo file_exists($filename)?'文件存在':'文件不存在';

3、檢查指定的文件是否是目錄,一般也用於判斷目錄是否存在(is_dir)

bool is_dir (string $filename )

<?php
var_dump(is_dir('a_file.txt'));//  輸出false  
var_dump(is_dir('wwwroot/phpernote')); //相對當前目錄檢查wwwroot/phpernote目錄是否存在,存在輸出true,不存在輸出false
var_dump(is_dir('..')); //輸出true

注釋:本函數的結果會被緩存。請使用 clearstatcache() 來清除緩存。

4、判斷給定文件名是否為一個正常的文件 (is_file)

bool is_file ( string $filename )

<?php  
var_dump(is_file('a_file.txt'));//true  
var_dump(is_file('/usr/bin/'));//false

5、鎖定或釋放文件(flock)

bool flock ( string $filename, string $lock [,mix $block] )

lock 參數可以是以下值之一:

要取得共享鎖定(讀取的程序),將 lock 設為 LOCK_SH(PHP 4.0.1 以前的版本設置為 1)。
要取得獨占鎖定(寫入的程序),將 lock 設為 LOCK_EX(PHP 4.0.1 以前的版本中設置為 2)。
要釋放鎖定(無論共享或獨占),將 lock 設為 LOCK_UN(PHP 4.0.1 以前的版本中設置為 3)。
如果不希望 flock() 在鎖定時堵塞,則給 lock 加上 LOCK_NB(PHP 4.0.1 以前的版本中設置為 4)。

block 可選。若設置為 1 或 true,則當進行鎖定時阻擋其他進程。

提示:可以通過 fclose() 來釋放鎖定操作,代碼執行完畢時也會自動調用。例如:

<?php
$file = fopen("test.txt","w+");
// 排它性的鎖定
if (flock($file,LOCK_EX)){
  if(is_writable($file))
  fwrite($file,"www.phpernote.com 總結的文章");
  // 解鎖
  flock($file,LOCK_UN);
}else{
  echo "鎖定文件失敗!";
}
fclose($file);

6、判斷給定文件名是否為一個符號連接 (is_link)

bool is_link ( string $filename )

<?php  
var_dump(is_link("a.lnk")); //輸出true

注釋:本函數的結果會被緩存。請使用 clearstatcache() 來清除緩存。

7、刪除目錄 (rmdir)此函數僅刪除空目錄(rmdir)

bool rmdir ( string $dirname ) 

<?php
var_dump(rmdir("/usr/local/a")); //當a為空目錄刪除成功,a為非空目錄刪除失敗

8、刪除文件(unlink)

bool unlink ( string $filename )

<?php
while(is_file($wwwphpernotecom) == TRUE){
	chmod($wwwphpernotecom, 0666);//設置可讀取,可寫入權限
	unlink($wwwphpernotecom);
}

9、獲取文件或目錄的權限(fileperms)

mix fileperms ( filename )

<?php
//若成功,則返回文件的訪問權限。若失敗,則返回 false
echo fileperms("test.txt");//輸出:33206

以八進制值返回權限

<?php
echo substr(sprintf("%o",fileperms("test.txt")),-4);//輸出:1777

提示:本函數的結果會被緩存。請使用 clearstatcache() 來清除緩存。

10、獲取指定文件或目錄的類型(filetype)

mix filetype ( filename )

若成功,則返回 7 種可能的值(fifo char dir block link file unknown)。若失敗,則返回 false。例如:

<?php
echo filetype("test.txt");//輸出:file

提示:本函數的結果會被緩存。請使用 clearstatcache() 來清除緩存。

11、讀取目錄文件(opendir readir closedir)

resource opendir ( string $path [,resource $context ] )

打開一個目錄句柄,可用於之後的 closedir(),readdir() 和 rewinddir() 調用中。

string readdir ( resource $dir_handle )

返回目錄中下一個文件的文件名。文件名以在文件系統中的排序返回。

void closedir ( resource $dir_handle )

關閉由 dir_handle 指定的目錄流。流必須之前被 opendir() 所打開。

void rewinddir ( resource $dir_handle )
 
將 dir_handle 指定的目錄流重置到目錄的開頭。

下面是一個完整的讀取目錄文件的示例:

<?php
$dir = "/etc/php5/";
if (is_dir($dir)) {  
    if ($dh = opendir($dir)) {  
        while (($file = readdir($dh)) !== false) {  
            echo "文件名: $file : 文件類型: " . filetype($dir . $file) . "\n";  
        }  
        closedir($dh);  
    }  
}

12、重命名文件或目錄(rename)

bool rename ( oldname, newname, context )

<?php
//將當前目錄下的子目錄a下面的文件1.gif重命名為2.gif
rename('/a/1.gif', '/a/2.gif');

說明:對目錄也一樣。系統會返回操作結果,成功則返回 TRUE,失敗則返回 FALSE。

如果要移動文件或目錄,只要將重命名後的路徑設置為新的路徑就可以了,例如:

<?php
//將當前目錄下的子目錄a下面的文件1.gif,移動到當前目錄下的子目錄b,並且重命名為2.gif
rename('/a/1.gif', '/b/2.gif');
//注意:如果目錄b不存在,就會移動失敗

13、復制(拷貝)文件(copy)

bool copy ( source, destination )

<?php
//將當前目錄下的子目錄a下面的文件1.gif,復制到當前目錄下的子目錄b,並命名為2.gif
copy('/a/1.gif', '/b/1.gif');

說明:不能對目錄進行此項操作;如果目標文件(上面的/b/1.gif)已經存在,原來的文件將被覆蓋;如果要移動文件的話,請使用 rename() 函數。

14、獲取目錄的可用空間(disk_free_space)

disk_free_space ( directory )

<?php
echo disk_free_space("C:");//輸出:209693288558

15、判斷指定的文件是否可寫(is_writable 或 is_writeable)

bool is_writable ( file )

說明:如果文件存在並且可寫則返回 true;file 參數可以是一個允許進行是否可寫檢查的目錄名;本函數的結果會被緩存。請使用 clearstatcache() 來清除緩存。例如:

<?php
$file = "test.txt";
//或者:$file = 'd:\wwwroot\phpernote\';
echo is_writable($file)?'可寫':'不可寫';

16、以讀寫(w+)模式建立一個具有唯一文件名的臨時文件(tmpfile)

resource tmpfile()

<?php
$temp = tmpfile();
fwrite($temp, "Testing, www.phpernote.com");
//倒回文件的開頭
rewind($temp);
//從文件中讀取 1k
echo fread($temp,1024);
//刪除文件
fclose($temp);
//文件會在關閉後(用 fclose())自動被刪除,或當腳本結束後
//輸出:Testing, www.phpernote.com

17、改變文件權限模式(chmod)

bool chmod ( file [,mode] )

mode 可選。規定新的權限。該參數由 4 個數字組成:
第一個數字永遠是 0
第二個數字規定所有者的權限
第二個數字規定所有者所屬的用戶組的權限
第四個數字規定其他所有人的權限
可能的值(如需設置多個權限,請對下面的數字進行總計):
1 - 執行權限
2 - 寫權限
4 - 讀權限

<?php
// 所有者可讀寫,其他人沒有任何權限
chmod("test.txt",0600);
// 所有者可讀寫,其他人可讀
chmod("test.txt",0644);
// 所有者有所有權限,其他所有人可讀和執行
chmod("test.txt",0755);
// 所有者有所有權限,所有者所在的組可讀
chmod("test.txt",0740);

18、擴展函數,方法

php讀取目錄並列表顯示目錄中的文件的函數

PHP刪除目錄及目錄下所有文件

更多文件,文件夾(目錄)函數請參考:

PHP Filesystem 函數

您可能感興趣的文章

  • php清空(刪除)指定目錄下的文件,不刪除目錄文件夾的方法
  • php判斷文件或目錄(文件夾)是否存在
  • linux chmod(文件或文件夾權限設定)命令參數及用法詳解
  • MySQL通過命令形式導入與導出.sql文件備份數據操作的實例
  • php提取身份證號碼中的生日日期以及驗證是否為未成年人的函數
  • PHP向文件寫入或追加數據
  • linux刪除文件,文件夾命令rm 命令詳解
  • Linux命令文件目錄管理cat命令

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved