2012-03-17 63 views
9

我想刪除在本地主機中找到的文件。使用php/codeigniter刪除文件

localhost/project/folder/file_to_delete 

我爲此使用codeigniter。

我想在php中使用unlink()函數,但我真的不明白如何使用它。

回答

29

您可以在笨使用 「文件幫手」。

http://codeigniter.com/user_guide/helpers/file_helper.html

像這樣:

$this->load->helper("file"); 
delete_files($path); 

後期編輯:delete_files方法使用的路徑通過unlink()和你一樣可以CI內完成消滅所有的內容。像這樣:

unlink($path); 

一個有效的路徑。

+4

'delete_files($ path)'需要目錄路徑而不是文件路徑。我不確定那是否能完成這項工作。 – Aniket 2012-12-30 09:35:53

+1

是的你是對的。我現在看起來它和'delete_files'功能使用遞歸'的unlink()'到指定的文件夾中刪除文件。這個問題的答案應該更新。 – 2012-12-30 11:55:48

+0

幹得好:) 現在看起來很好。 – Aniket 2012-12-31 07:13:02

8

http://php.net/manual/en/function.unlink.php

這是理解的最好方式。 閱讀它!

$path_to_file = '/project/folder/file_to_delete'; 
if(unlink($path_to_file)) { 
    echo 'deleted successfully'; 
} 
else { 
    echo 'errors occured; 
} 
+0

它給出了一個錯誤;取消鏈接(本地主機/項目/ files_to_delete/f1.php)[function.unlink]:沒有這樣的文件或目錄 – Jetoox 2012-03-17 06:46:17

+1

,如果它給你一個錯誤,你應該沉默像這樣'@unlink($文件路徑)' 但是,爲了確保該文件存在,在刪除之前使用[is_file函數](http://php.net/manual/en/function.is-file.php)。 – machineaddict 2013-03-14 14:34:55

2
$file = "test.txt"; 
if (!unlink($file)) 
    { 
    echo ("Error deleting $file"); 
    } 
else 
    { 
    echo ("Deleted $file"); 
    } 
0

此代碼還可以處理非空文件夾 - 只是在助手中使用它。

if (!function_exists('deleteDirectory')) { 
    function deleteDirectory($dir) { 
    if (!file_exists($dir)) return true; 
    if (!is_dir($dir) || is_link($dir)) return unlink($dir); 
     foreach (scandir($dir) as $item) { 
      if ($item == '.' || $item == '..') continue; 
      if (!deleteDirectory($dir . "/" . $item)) { 
       chmod($dir . "/" . $item, 0777); 
       if (!deleteDirectory($dir . "/" . $item)) return false; 
      }; 
     } 
     return rmdir($dir); 
    } 
} 
6

刪除文件使用

unlink($file_name); 

或刪除目錄,使用

rmdir($dir); 
3

試試這個,這個工作對我來說:

unlink("./path/to/folder/file_name_do_delete"); 

例如:我把我的文件裏面上傳文件夾,這是o​​utsi de應用程序文件夾和我的文件名是123.jpg。所以它應該是這樣的:

unlink("./uploads/123.jpg");