php檢測檔案屬性函數(shù)
有些同學(xué)特別好奇,偵測檔案屬性用在什麼地方。檢測文件屬性能用到的地方太多了。
我們來舉例:
????1.我們在做軟體安裝的時候,大家會發(fā)現(xiàn)如果檔案存在了,就跳到其他的地方了。
????2.如果在安裝的過程當(dāng)中,某些檔案沒有寫入權(quán)限,就不讓進(jìn)行安裝。
我們來舉一個國內(nèi)非常有名的軟體,discuz的安裝流程截圖給大家看看:
上面的例子,就是典型的檔案偵測的用法。
我們來學(xué)習(xí)下面的一批函數(shù)。然後,我們來透過一個例子進(jìn)行學(xué)習(xí)。
????bool file_exists ( $指定檔案名稱或檔案路徑)
????功能:檔案是否存在。
????bool is_readable ( $指定檔案名稱或檔案路徑)
????功能:檔案是否可讀取
#????bool is_writeable ( $
#????
#????
bool is_writeable ( $
bool) 指定檔案名或檔案路徑)????功能:檔案是否可寫入
bool is_executable ( $指定檔案名稱或檔案路徑)????功能:檔案是否可執(zhí)行
bool is_file ( $指定檔名或檔案路徑)????功能:是否為檔案
#bool is_dir ( $指定檔案名稱或檔案路徑)
????功能:是否為目錄????
void clearstatcache ( void )卷口清楚了。那個實(shí)驗(yàn),我們就來寫這個最開始我們舉的這個例子。
我們來講第一個例子,檔案鎖。如果已經(jīng)安裝了,存在安裝鎖就提示已安裝,否則就繼續(xù)安裝。
我們假設(shè)安裝介面的網(wǎng)址是:install.php,安裝的鎖定檔案是install.lock。我們就可以偵測install.lock檔案是否存在。
<?php if(file_exists('install.lock')){ echo '已安裝,請不要再次進(jìn)行安裝'; exit; } ?>###我們接下來做一個檔案安裝偵測的實(shí)驗(yàn)來偵測檔案或目錄是否有寫入或讀取權(quán)限。如果沒有則不能進(jìn)行安裝。 ######處理這件事的想法如下:######????1.定義一批需要偵測權(quán)限的陣列###
????2.可以偵測是資料夾還是檔案
????3.做一個標(biāo)位變數(shù),如果標(biāo)置位元變數(shù)一旦為false則不顯示下一步的安裝
<?php //可以定義一批文件是否存在 $files = [ 'config.php', 'img/', 'uploads/', ]; //定義標(biāo)志位變量 $flag = true; foreach($files as $v){ echo $v; //判斷是文件還是文件夾 if(is_file($v)){ echo '是一個文件 '; }else if(is_dir($v)){ echo '是一個文件夾 '; } if(is_readable($v)){ echo ' 可讀'; }else{ echo '<font color="red">不可讀</font>'; } if(is_writeable($v)){ echo '可寫'; }else{ echo '<font color="red">不可寫</font>'; } echo '<br />'; } if($flag){ echo '<a href="step1">下一步</a>'; }else{ echo '不能進(jìn)行安裝'; } ?>
透過上面的例子,我們就做到了。實(shí)現(xiàn)PHP某個軟體安裝過程當(dāng)中的安裝檢測。
也就是我們上面思路的實(shí)作。