php學習基礎-檔案系統(一) 檔案處理,檔案許可權

來源:互聯網
上載者:User

標籤:php檔案系統

一、PHP系統檔案處理

/*  PHP檔案系統處理 *所有檔案處理都是使用系統函數完成的。 *是基於Linux/Unix系統為模型 * *  檔案系統處理的作用: *  1. 所有的項目離不開檔案處理 *  2. 可以用檔案長時間儲存資料 *  3. 建立緩衝, 伺服器中檔案操作 * *  檔案處理 *1. 檔案類型 *以Linux為模型的, 在Windows只能擷取file, dir或unknow 三種類型 *在Linux/Unix下, block, char, dir, fifo, file, link, unknown和種型 *block :塊設定檔案,磁碟分割,軟碟機, cd-rom等 *char: 字元裝置,I/O 以字元為單位, 鍵盤,印表機等 *dir: 目錄也是檔案的一種 *fifo:  *file: *link:  *unknown * * filetype("目錄或檔案名稱") * * is_array(); * is_int(); * is_string(); * is_null; * is_bool(); * is_dir -- 判斷給定檔案名稱是否是一個目錄is_executable -- 判斷給定檔案名稱是否可執行is_file -- 判斷給定檔案名稱是否為一個正常的檔案is_link -- 判斷給定檔案名稱是否為一個符號串連is_readable -- 判斷給定檔案名稱是否可讀is_uploaded_file -- 判斷檔案是否是通過 HTTP POST 上傳的is_writable -- 判斷給定的檔案名稱是否可寫is_writeable -- is_writable() 的別名 * * *2. 檔案的屬性 *file_exists(); *filesize(); *is_readable(); *is_writeable(); *filectime(); *filemtime(); *fileactime(); *stat(); * *3. 和檔案路徑相關的函數 * *相對路徑:相對於目前的目錄的上級和下級目錄 *.  目前的目錄 *.. 上一級目錄 * *./php/apache/index.php *php/apahce/index.php *login.php *./login.php *../images/tpl/logo.gif * * *路徑分隔字元號 *linux/Unix    "/" *windows       "\" * *DIRECTORY_SEPARATOR  為不同平台,在Windows \ Linux / * *不管是什麼作業系統PHP的目錄分割符號都支技 / (Linux) * *在PHP和Apache設定檔中如果需要指定目錄,也使用/作為目錄符號 * *絕對路徑: */ 根路徑 * */images/index.php * *指的作業系統的根 *指的是存放網站的主目錄 * *                              分情況 * *                              如果是在伺服器中執行(通過PHP檔案處理函數執行)路徑 則 “根”指的就是作業系統的根 *如果程式是下載的用戶端,再訪問伺服器中的檔案時,只有通過Apache訪問,“根”也就指的是主目錄 * *http://www.xsphp.com/logo.gif * * *basename(url) *dirname(url) *pathinfo(url) * * * * *4. 檔案的操作(建立檔案,刪除檔案,移動檔案) *5. 檔案的開啟與關閉(讀檔案中的內容, 向檔案中寫內容) *6. 檔案內部移動指標 *7. 檔案的鎖定一些機制處理 * * *  目錄的處理 *  1. 目錄的遍曆 *  2. 目錄的建立 *  3. 目錄的刪除 *  4. 目錄的複製 *5. 統計目錄大小 * * *  檔案上傳和下載 *  1. 上傳 *  2. 下載 * * */


二、PHP檔案屬性函數執行個體

date_default_timezone_set("PRC");function getFilePro($fileName){if(!file_exists($fileName)){echo "檔案或目錄{$fileName} 不存在<br>";return;}else{echo "檔案的類型".filetype($fileName)."<br>";}if(is_file($fileName)){echo "這是一個檔案<br>";echo "檔案的大小為".getFileSize(filesize($fileName))."<br>";}if(is_dir($fileName)){echo "這是一個目錄<br>";}if(is_readable($fileName)){echo "這個檔案可以讀<br>";}if(is_writable($fileName)){echo "這個檔案可以寫<br>";}if(is_executable($fileName)){echo "這個檔案可以執行<br>";}echo "檔案的建立時間:".date("Y-m-d H:i:s",filectime($fileName))."<br>";echo "檔案的修改時間:".date("Y-m-d H:i:s",filemtime($fileName))."<br>";echo "檔案的最後訪問時間:".date("Y-m-d H:i:s",fileatime($fileName))."<br>";}function getFileSize($size){$dw="Byte";if($size >= pow(2, 40)){$size=round($size/pow(2, 40), 2);$dw="TB";}else if($size >= pow(2, 30)){$size=round($size/pow(2, 30), 2);$dw="GB";}else if($size >= pow(2, 20)){$size=round($size/pow(2, 20), 2);$dw="MB";}else if($size >= pow(2, 10)){$size=round($size/pow(2, 10), 2);$dw="KB";}else {$dw="Bytes";}return $size.$dw;}getFilePro("demo.txt");getFilePro("hello");


三、PHP擷取檔案狀態函數

date_default_timezone_set("PRC");echo ‘<pre>‘;print_r(stat("demo.txt"));echo ‘</pre>‘;


四、使用檔案系統快取資料方案

$cache=5;                   //緩衝時間$cachefile="cache.txt";      //緩衝的檔案if(file_exists($cachefile) && (time()-$cache) < filemtime($cachefile)) {   echo file_get_contents($cachefile); //如果在緩衝的10秒內,就從快取檔案中擷取資料}else{file_put_contents($cachefile, date("Y-m-d H:i:s", time()));}


五、檔案路徑相關函數執行個體

$url1="./aaa/bbb/index.php";echo basename($url1)."<br>";  //檔案名稱echo dirname(dirname($url1))."<br>"; //父級目錄echo dirname($url1)."<br>"; //檔案目錄echo ‘<pre>‘;       //檔案路徑資訊  print_r($path=pathinfo($url3));  echo ‘</pre>‘;    echo $path["extension"];

六、檔案系統許可權相關的函數執行個體

  建立檔案 touch("檔案名稱")  刪除檔案 unlink("檔案路徑");  移動檔案 為檔案重新命名 rename("當前檔案路徑", “目錄為檔案路徑”)  複製檔案 copy("當前", “目標”);   一定要有PHP執行這個檔案許可權, Apache, 一個使用者    和許可權設計有關的函數    ls -l  或 ll  _rwxrwxrwx   777  _ 類型 _檔案  d 表示是目錄  l  b     rwx 表這個檔案的擁有者  r讀 w寫 x執行      rwx 表這個檔案的擁有者所在的組  r讀 w寫 x執行  rwx 其它使用者對這個為檔案的許可權  r讀 w寫 x執行r 4w 2x 1 7 7 7  4+2+1  4+2+1 4+2+1rwx   rwx  rwx6444+2   4   4rw_  r__ r__754  chmod u=rwx,g=rw,o=x  chmod 777  demo.php  chmod 644  demo.html  chown  mysql demo.php  chgrp  apache demo.php  chgrp -- 改變檔案所屬的組  chmod -- 改變檔案模式  chown -- 改變檔案的所有者  filegroup -- 取得檔案的組  fileowner -- 取得檔案的所有者

























聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.