標籤:path 方法 ceshi world each closed log 檔案屬性 while
php中的檔案指的是檔案和檔案夾,不是單指檔案。1.判斷檔案(判斷是檔案還是檔案夾)找檔案,輸出結果為file,代表的是檔案。
var_dump(filetype("./aa.txt"));
找檔案夾,輸出的是dir,代表的是目錄。
var_dump(filetype("./aa"));
判斷是不是檔案,返回的是true
var_dump(is_file("./aa.txt"));
判斷是不是檔案夾,返回的是true
var_dump(is_dir("./aa"));
2.檔案屬性
擷取當前伺服器的根www
echo $_SERVER[‘DOCUMENT_ROOT‘];
擷取檔案上次訪問時間,返回的是時間戳記。
echo date(fileatime("./aa.txt"));
把時間戳記轉化為時間。
echo date("Y-m-d h:i:s",fileatime("./aa.txt"))
擷取檔案建立時間
echo date("Y-m-d h:i:s",filectime("./aa.txt"));
擷取檔案修改時間
echo date("Y-m-d h:i:s",filemtime("./aa.txt"));//
返迴文件的大小,單位是位元組b。
echo filesize("aa.txt");
判斷檔案是否存在,存在返回true,不存在返回flase。
var_dump(file_exists("aa.txt"));
3.檔案路徑./代表當前路徑 ../代表上級路徑在頁面指文檔根,在php裡面的根代表是磁碟目錄,網頁裡面/也是代表根,是www目錄。返回D:/wamp/www/,取的是伺服器的根。
echo $_SERVER[‘DOCUMENT_ROOT‘];
返回index.php,返回的是檔案名稱。
echo basename("/wamp/www/index.php");
返回index,返回的只是檔案名稱。
echo basename("/wamp/www/index.php",".php");
返回/wamp/www,只是擷取目錄。
echo dirname("/wamp/www/index.php");
返回數組,裡面是檔案存在的目錄、檔案名稱、檔案格式等資訊。
var_dump(pathinfo("/wamp/www/index.php"));
返回D:\wamp\www\wenjiancaozuo\aa.txt,把相對路徑轉化為絕對路徑。
echo realpath("./aa.txt");
4.目錄操作建立目錄
mkdir("./bb");
刪除目錄,只能刪除空檔案夾。檔案夾裡有內容是不能刪除的,會報錯。
rmdir("bb");
移動檔案夾,實際上是把檔案重新命名位置。
rename("./cc","./aa/cc");
移動的同時可以變更檔名。
rename("./cc","./aa/dd");
5.遍曆目錄**遍曆租房檔案夾下所有的檔案,相當於未按裡面的額搜尋。
var_dump(glob("./zufang/*"));
遍曆檔案格式為php的檔案
var_dump(glob("./zufang/*.php"));
開啟目錄資源,開啟以後一定要記得關閉。
$dir = opendir("./zufang");
返回. .代表目前的目錄
echo readdir();
返回.. ..代表上級目錄
echo readdir();
返回第一個檔案
echo readdir();
返回第二個檔案
echo readdir();
//遍曆出所有的檔案,檔案夾也可以讀取。
while($f = readdir($dir)) { echo $f;}
關閉目錄資源
closedir($dir);//
例題1:方法1:給一個檔案夾,讀取檔案夾裡面檔案的數量
echo ShuLiang("./zufang");function ShuLiang($filename){ $sum = 0; $dir = opendir($filename); while($f = readdir($dir)) { if($f=="." || $f=="..")//如果遍曆出的是.或者..,什麼也不執行. { } else { $lujing = $filename."/".$f; if(is_file($lujing)) { $sum++; } else { $sum = $sum+ShuLiang($lujing); } } } closedir($dir); return $sum; }
例題1:方法2:該方法用來擷取指定檔案夾下檔案的數量
function ShuLiang($filename){$attr = glob($filename."/*");$n = count($attr);foreach($attr as $v){if(is_dir($v)){$n = $n+ShuLiang($v);}} return $n;}echo ShuLiang("./0904");
例題2:擷取某一個目錄下所有檔案的大小
function Fsize($fname){$size = 0;$dir = opendir($fname);//遍曆目錄,找到檔案,累加大小while($u = readdir($dir)){if($u=="." || $u==".."){}else{$zfname = $fname."/".$u;if(is_file($zfname)){$size += filesize($zfname);}}}//找到子目錄,擷取子目錄下檔案大小rewinddir($dir);while($u = readdir($dir)){if($u=="." || $u==".."){}else{$zfname = $fname."/".$u;if(is_dir($zfname)){$size += Fsize($zfname);}}}closedir($dir);return $size;}echo Fsize("./0904");
6.檔案操作(1)檔案整體操作建立檔案
touch("./cc.txt");
賦值檔案,第一個參數是要複製的檔案,第二個是把檔案複製到哪裡。
copy("./cc.txt","./aa/cc.txt");//
刪除檔案
unlink("./cc.txt");//
讀取檔案內容只能讀取txt、html、php等,word、wxcle文檔不能讀取。
echo file_get_contents("./aa.txt");//
這個方法比較重要,可以從網上抓取資料,用Regex匹配。
echo file_get_contents("http://www.baidu.com");//
往檔案裡寫內容,寫的內容會覆蓋原來的內容。
file_put_contents("./aa.txt","hello");//
修改往網頁裡面的內容
file_put_contents("./ceshi.php","hello");//
擷取並且輸出,前面沒有寫輸出。 file_get_contents需要寫輸出echo。
readfile("http://www.baidu.com");//
把網頁的代碼一行一行的顯示出來。
var_dump(file("http://www.baidu.com"));//
第一個參數是開啟的檔案,第二個是開啟的方式,方式具體可以查看php手冊。
$f = fopen("./aa.txt","r");//
aa.txt的內容是hello。這裡返回的是h
echo fgetc($f);//
返回e
echo fgetc($f);//
返回l
echo fgetc($f);//
....fgetc()是一次讀一個一次讀一行
echo fgets($f);
讀取的長度,這裡是讀取2個長度,返回he。
echo fread($f,2);
檔案開啟以後一定要關上,如果不關是不能進行別的操作的。*/
fclose($f);
a方式是追加
$f = fopen("./aa.txt","a");
把world寫在hello後面
fwrite($f,"world");
fclose($f);
給一個檔案夾,刪除該檔案夾
ShanChu("./zufang");function ShanChu($filename){ if(is_dir($filename))//判斷是檔案 { $dir = opendir($filename);//開啟檔案夾 while($f = readdir($dir))//遍曆出檔案夾裡所有的內容 { if($d=="." || $d=="..")//去掉.和.. { } else//操作不是.和..的內容 { $fname = $filename."/".$f;//找到遍曆出的內容,拼出來的格式類似wamp/zufang if(is_file($fname))//如果是檔案 { unlink($fname); } else//如果是檔案夾 { ShanChu($fname);//再調用ShanChu方法,刪除的檔案夾變了。 } } } closedir($dir);//關閉檔案夾 rmdir($filename);//把檔案夾裡的內容都刪除以後,刪除檔案夾 } else//如果是空檔案夾 { unlink($filename);//刪除該空檔案夾 } }
php部分--檔案操作