php資料夾與檔案目錄操作函數介紹_PHP教學課程

WBOY
發布: 2016-07-21 16:12:35
原創
908 人瀏覽過

php文件夹操作函数

string basename ( string path [, string suffix] )
给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。
在 Windows 中,斜线(/)和反斜线()都可以用作目录分隔符。在其它环境下是斜线(/)。

string dirname ( string path )

给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。
在 Windows 中,斜线(/)和反斜线()都可以用作目录分隔符。在其它环境下是斜线(/)。

array pathinfo ( string path [, int options] )

pathinfo() 返回一个联合数组包含有 path 的信息。包括以下的数组单元:dirname,basename 和 extension。
可以通过参数 options 指定要返回哪些单元。它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和 PATHINFO_EXTENSION。默认是返回全部的单元。

string realpath ( string path )

realpath() 扩展所有的符号连接并且处理输入的 path 中的 ‘/./', ‘/../' 以及多余的 ‘/' 并返回规范化后的绝对路径名。返回的路径中没有符号连接,'/./' 或 ‘/../' 成分。
realpath() 失败时返回 FALSE,比如说文件不存在的话。在 BSD 系统上,如果仅仅是 path 不存在的话,PHP 并不会像其它系统那样返回 FALSE。

bool is_dir ( string filename )

如果文件名存在并且为目录则返回 TRUE。如果 filename 是一个相对路径,则按照当前工作目录检查其相对路径。
注: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

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 指定的目录流重置到目录的开头。

array glob ( string pattern [, int flags] )

glob() 函数依照 libc glob() 函数使用的规则寻找所有与 pattern 匹配的文件路径,类似于一般 shells 所用的规则一样。不进行缩写扩展或参数替代。
返回一个包含有匹配文件/目录的数组。如果出错返回 FALSE。

有效标记为:
GLOB_MARK - 在每个返回的项目中加一个斜线
GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)
GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式
GLOB_NOESCAPE - 反斜线不转义元字符
GLOB_BRACE - 扩充 {a,b,c} 来匹配 ‘a','b' 或 ‘c'
GLOB_ONLYDIR - 仅返回与模式匹配的目录项

注: 在 PHP 4.3.3 版本之前 GLOB_ONLYDIR 在 Windows 或者其它不使用 GNU C 库的系统上不可用。
GLOB_ERR - 停止并读取错误信息(比如说不可读的目录),默认的情况下忽略所有错误
注: GLOB_ERR 是 PHP 5.1 添加的。

php文件目录操作

新建文件
1、先确定要写入文件的内容
$content = '你好';
2、打开这个文件(系统会自动建立这个空文件)
//假设新建的文件叫file.txt,而且在上级目录下。w表示‘写文件',$fp下面要用到,表示指向某个打开的文件。
$fp = fopen('../file.txt', 'w');
3、将内容字符串写入文件
//$fp告诉系统要写入的文件,写入的内容是$content
fwrite($fp, $content);
4、关闭文件
fclose($fp);
说明:PHP5中提供了更方便的函数file_put_contents,上面的4步可以这样完成:
$content = '你好';
file_put_contents('file.txt',$content);

删除文件
//删除当前目录下的arch目录下的文件abc.txt
unlink('arch/abc.txt');
说明:系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否删除成功:
$deleteResult = unlink('arch/abc.txt');

获取文件内容
//假设获取的目标文件名是file.txt,而且在上级目录下。获取的内容放入$content。
$content = file_get_contents('../file.txt');

修改文件内容
操作方法与新建内容基本一样

重新命名檔案或目錄
//將目前目錄下的子目錄a下面的檔案1.gif重新命名為2.gif。
rename('/a/1.gif', '/a/2.gif');
說明:對目錄也是一樣。系統會回傳操作結果,成功則回傳 TRUE,失敗則回傳 FALSE,可以用變數接收,就知道是否重新命名成功。
$renameResult = rename('/a/1.gif', '/a/2.gif');
如果要移動檔案或目錄,只要將重新命名後的路徑設定為新的路徑就可以了:
//將目前目錄下的子目錄a下面的檔案1.gif,移動到目前目錄下的子目錄b,並且重新命名為2.gif。
rename('/a/1.gif', '/b/2.gif');
不過要注意,如果目錄b不存在,就會移動失敗。

複製檔案
//將目前目錄下的子目錄a下面的檔案1.gif,複製到目前目錄下的子目錄b,並命名為2.gif。
copy('/a/1.gif', '/b/1.gif');
說明:不能對目錄進行此項操作。
如果目標檔案(上面的/b/1.gif)已經存在,原來的檔案將會被覆蓋。
系統會回傳操作結果,成功則回傳 TRUE,失敗則回傳 FALSE,可以用變數接收,就知道是否複製成功。
$copyResult = copy('/a/1.gif', '/b/1.gif');

移動檔案或目錄
操作方法和重新命名一樣

檔案或目錄是否存在
//檢查上級目錄下的檔案logo.jpg是否存在。
$existResult = file_exists('../logo.jpg');
說明:如果檔案存在系統回傳true,否則回傳false。可以對目錄進行同樣的操作。

取得檔案大小
//取得上級目錄下的檔案logo.png的大小。
$size = filesize('../logo.png');
說明:系統會傳回一個數字,表示檔案的大小是多少位元組(bytes)。

新目錄
//在目前目錄下的目錄a下面新建目錄b。
mkdir('/a/b');
說明:系統會回傳作業結果,成功則回傳TRUE,失敗則回傳FALSE,可以用變數接收,就知道是否新建成功:
$mkResult = mkdir('/a/b');

刪除目錄
//刪除目前目錄下的目錄a下面的子目錄b。
rmdir('/a/b');
說明:只能刪除非空的目錄,否則必須先刪除目錄下的子目錄和文件,再刪除總目錄
系統會回傳操作結果,成功則回傳TRUE,失敗則回傳FALSE,可以用變數接收,就知道是否刪除成功:
$deleteResult = rmdir('/a/b');

取得目錄中的所有檔案名稱
1、先開啟要操作的目錄,並用一個變數指向它
//開啟目前目錄下的目錄pic下的子目錄common。
$handler = opendir('pic/common');
2、循環的讀取目錄下的所有檔案
/*其中$filename = readdir($handler)是每次循環的時候將讀取的檔名賦值給$filename,為了不陷於死循環,所以還要讓$filename !== false。一定要用!==,因為如果某個檔名如果叫'0',或是某些被系統認為是代表false,用!=就會停止循環*/
while( ($filename = readdir($ handler)) !== false )  {
      3、目錄下都會有兩個文件,名字為'.'和'..',不要對他們進行操作
      if($filename != "." && $filename != "..") {
      4、進行處理
      //這裡簡單的用echo來輸出檔案名稱
    5.關閉目錄
closedir($handler);

物件是否為目錄
//檢查上級目錄下的目標物件logo.jpg是否為目錄。

$checkResult = is_dir('../logo.jpg');

說明:如果目標物件是目錄系統回傳true,否則回傳false。上面範例的$checkResult當然是false。

物件是否為檔案
//檢查上級目錄下的目標物件logo.jpg是否為檔案。

$checkResult = is_file('../logo.jpg');

說明:如果目標物件是文件,系統回傳true,否則回傳false。上面例子的$checkResult當然是true。


http://www.bkjia.com/PHPjc/313640.html

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/313640.htmlTechArticlephp資料夾運算子string basename ( string path [, string suffix] ) 給予一個包含有指向一個檔案的全路徑的字串,本函數傳回基本的檔名。如果...
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!