PHP的目錄、文件操作是很簡單的,本章用的是windows的服務(wù)器,目錄名為GBK編碼,文件內(nèi)容為UTF-8編碼。這樣一目了然。
實例15目錄創(chuàng)建、刪除
代碼如下:
<?php
$dirfile="文件夾";
$dirfile=iconv("UTF-8","GB2312",$dirfile);//轉(zhuǎn)碼,否則會看到windows里面是亂碼,但程序能正常操作,讀取目錄時反過來才看到目錄的真正名字。
if(!file_exists($dirfile))//用于判斷目錄或文件是否存在
mkdir($dirfile);//創(chuàng)建目錄
rmdir($dirfile);//刪除目錄,必須為空目錄,否則要先刪除里面的所有文件,后面有刪除方法
echo"<br>";
?>
實例16文件創(chuàng)建、刪除、讀取、轉(zhuǎn)數(shù)組
代碼如下:
<?php
$filename="文件.txt";
$filename=iconv("UTF-8","GB2312",$filename);//轉(zhuǎn)碼,否則會看到windows里面是亂碼
file_put_contents($filename,'');//自動創(chuàng)建空文件,如果已存在則刪除再創(chuàng)建,具體可以增加file_exists判斷,比fopen、fputs、fclose等函數(shù)簡單。
unlink($filename);//注意文件名都是GB2312編碼
file_put_contents($filename,"大家好!\r\n大家好?。?,FILE_APPEND);
//看到?jīng)],寫入兩行,第三個參數(shù)可選,表示是以增加方式寫入,否則清空內(nèi)容再寫入
echofile_get_contents($filename);//忽略換行讀取整個文件
echo"<br>";
$arr=file($filename);//文件按行讀到數(shù)組里
print_r($arr);
echo"<br>";
readfile($filename);//文件直接輸出到屏幕
echo"<br>";
?>
實例17獲取url信息、客戶端ip地址
代碼如下:
<?php
//獲取域名或主機(jī)地址
echo$_SERVER['HTTP_HOST']."<br>";
//獲取網(wǎng)頁地址(中間部分)
echo$_SERVER['PHP_SELF']."<br>";
//獲取網(wǎng)址參數(shù)(?后面部分)
echo$_SERVER["QUERY_STRING"]."<br>";
//來源客戶端ip地址
if($_SERVER['HTTP_CLIENT_IP']){
$onlineip=$_SERVER['HTTP_CLIENT_IP'];
}elseif($_SERVER['HTTP_X_FORWARDED_FOR']){
$onlineip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$onlineip=$_SERVER['REMOTE_ADDR'];
}
echo$onlineip;
echo"<br>";
?>
實例18獲取文件修改時間戳、遍歷目錄文件。
。
代碼如下:
<?php
$filename="文件.txt";
$filename=iconv("UTF-8","GB2312",$filename);
$passtime=time()-filectime($filename);//創(chuàng)建時間差,不準(zhǔn),一般不用
echo$passtime;
echo"<br>";
$passtime=time()-filemtime($filename);//修改時間差,用于更新判斷,緩沖等判斷
echo$passtime;
echo"<br>";
$dir="../";
print_r($arr=scandir($dir));//獲得主目錄的所有文件和文件夾名稱
foreach($arras$value){
if(!is_dir($dir.$value))//是否目錄,目錄還包括"."、".."兩個數(shù)組,通過判斷可以知道是文件還是目錄,以及是什么類型的后序名
echoiconv("GB2312","UTF-8",$value)."<br>\r\n";
}
?>
實例19文件包含
代碼如下:
<?php
$filename="文件.txt";
@include($filename);//包含到此處,然后由服務(wù)器處理成html代碼。
/*
@表示讀取不了時忽略錯誤警告,用于PHP語句、函數(shù)前,一般服務(wù)器端顯示錯誤是關(guān)閉的,但是個別例外。除此之外,大家還可以try-catch捕捉異常,或者用file_exists函數(shù)先判斷文件是否存在。
*/
require_once($filename);//預(yù)處理包含,一般用于配置、函數(shù)等包含進(jìn)來。這兩個函數(shù)都可以選擇_once,強(qiáng)調(diào)包含一次。
//這四個函數(shù)都會被服務(wù)器處理PHP代碼,簡化重復(fù)的代碼,很常用。實例15的readfile則直接當(dāng)html輸出到客戶頁面
?>
可以看出,PHP操作文件目錄的函數(shù)是比較簡單和強(qiáng)大的,一個功能也就一行代碼搞定。本章沒有介紹copy函數(shù),大家可以自己試試。
更多信息請查看IT技術(shù)專欄