2012-03-17 25 views
9

Tôi muốn xóa tệp được tìm thấy trong máy chủ cục bộ của mình.Xóa Tệp bằng cách sử dụng php/codeigniter

localhost/project/folder/file_to_delete 

Tôi đang sử dụng trình viết mã cho điều này.

Tôi muốn sử dụng hàm unlink() trong php nhưng tôi thực sự không thể hiểu cách sử dụng nó.

Trả lời

29

bạn có thể sử dụng "tập tin helper" trong CodeIgniter.

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

và như thế này:

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

Cuối Edit:delete_files phương pháp sử dụng một con đường để tiêu diệt tất cả các nội dung của nó qua unlink() và cùng bạn có thể làm trong CI. Như thế này:

unlink($path); 

một đường dẫn hợp lệ.

+4

'delete_files ($ path)' yêu cầu đường dẫn thư mục chứ không phải đường dẫn tệp. Tôi không chắc liệu điều đó có thực hiện được hay không. – Aniket

+1

Có bạn đã đúng. Bây giờ tôi đã xem nó và hàm 'delete_files' sử dụng một' unlink() 'đệ quy để xóa các tập tin trong một thư mục được chỉ định. Câu trả lời của câu hỏi này nên được cập nhật. –

+0

Thực hiện tốt :) Hiện tại có vẻ ổn. – Aniket

8

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

Đây là cách tốt nhất để hiểu. Đọc nó!

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

nó sẽ gây ra lỗi; unlink (localhost/project/files_to_delete/f1.php) [function.unlink]: Không có tệp hoặc thư mục nào như vậy – Jetoox

+1

nếu nó cho bạn lỗi, bạn nên tắt tiếng như thế này '@unlink ($ path_to_file)' Nhưng để đảm bảo tệp tồn tại, sử dụng [hàm is_file] (http://php.net/manual/en/function.is-file.php) trước khi xóa nó. – machineaddict

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

Mã này cũng có thể xử lý các thư mục không trống - chỉ cần sử dụng nó trong trình trợ giúp.

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

xóa sử dụng tập tin

unlink($file_name); 

hoặc xóa sử dụng thư mục

rmdir($dir); 
3

Hãy thử điều này, điều này làm việc cho tôi:

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

ví dụ: Tôi đặt tập tin của tôi bên trong thư mục tải lên mà là outsi thư mục ứng dụng và tên tệp của tôi là 123.jpg. Vì vậy, nó phải như thế này:

unlink("./uploads/123.jpg"); 
Các vấn đề liên quan