最近在寫個網站,需要上傳圖片,如果修改圖片,就圖片就沒有用了,會占用服務器的硬盤資源,所以想到用unlink函數刪除舊照片.
問題 : unlink函數只能刪除 相對于函數執行文件的相對目錄 或 磁盤的絕對目錄.
兩個目錄都不方便, 因為我存的圖片目錄是網站根目錄的相對路徑.
解決辦法:
在入口文件定義網站磁盤目錄的常量 , 在刪除的時候進行拼接
在 index.php
- // 定義磁盤目錄
- // 定義磁盤目錄
- define('__DOCUMENT_PATH__',substr(__FILE__ ,0,-10) );
- 然后定義一個公共函數
- function delOldPic($url) {
- unlink(__DOCUMENT_PATH__.$pic);
- }
用自定義函數刪除就可以了
問題 : 這么做安全性感覺會降低 , 水平有限, 這塊的問題不能求證, 歡迎圓友留言幫助
下面通過例子看下PHP unlink() 函數的定義
定義和用法
unlink() 函數刪除文件。
若成功,則返回 true,失敗則返回 false。
語法
unlink(filename,context)
參數 描述
filename 必需。規定要刪除的文件。
context 可選。規定文件句柄的環境。Context 是可修改流的行為的一套選項。
提示和注釋
注釋:對 context 的支持是 PHP 5.0.0 添加的。
例子
- <?php
- $file = "test.txt";
- if (!unlink($file))
- {
- echo ("Error deleting $file");
- }
- else
- {
- echo ("Deleted $file");
- }
- ?>
新聞熱點
疑難解答