Я хотел бы удалить файл, найденный на моем локальном хосте.
localhost/project/folder/file_to_delete
Для этого я использую codeigniter.
Я хотел бы использовать функцию unlink () в php, но я действительно не могу понять, как ее использовать.
вы можете использовать "помощник по файлам" в codeigniter.
http://codeigniter.com/user_guide/helpers/file_helper.html
и так:
$this->load->helper("file"); delete_files($path);
Позднее редактирование: delete_files метод использует путь, чтобы уничтожить все его содержимое с помощью unlink(), и то же самое вы можете сделать в CI.Вот так:
delete_files
unlink()
unlink($path);
правильный путь.
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; }
для удаления файла используйте
unlink($file_name);
или для удаления каталога используйте
rmdir($dir);
Попробуйте, это работает для меня:
unlink("./path/to/folder/file_name_do_delete");
например: я помещаю свой файл в папку загрузки, которая находится вне папки приложения, и мое имя файла 123.jpg. Так и должно быть так:
unlink("./uploads/123.jpg");
$file = "test.txt"; if (!unlink($file)) { echo ("Error deleting $file"); } else { echo ("Deleted $file"); }
просто можно использовать:
$file = "uploads/my_test_file.txt"; if (is_readable($file) && unlink($file)) { echo "The file has been deleted"; } else { echo "The file was not found"; }
Используйте FCPATH в unlink.Вы можете попробовать, как это работает для меня:
FCPATH
$file_name = $SBLN_ROLL_NO."_ssc"; $file_ext = pathinfo($_FILES['ASSIGNMENT_FILE']['name'],PATHINFO_EXTENSION); //File upload configuration $config['upload_path'] = $upload_path; $config['allowed_types'] = 'jpg|jpeg|png|gif|pdf'; $config['file_name'] = $file_name.'.'.$file_ext; //First save the previous path for unlink before update $temp = $this->utilities->findByAttribute('SKILL_DEV_ELEMENT', array('APPLICANT_ID'=>$STUDENT_PERSONAL_INFO->APPLICANT_ID, 'SD_ID'=>$SD_ID)); //Now Unlink if(file_exists($upload_path.'/'.$temp->ELEMENT_URL)) { unlink(FCPATH . $upload_path.'/'.$temp->ELEMENT_URL); } //Then upload a new file if($this->upload->do_upload('file')) { // Uploaded file data $fileData = $this->upload->data(); $file_name = $fileData['file_name']; }
сентябрь 2018 это решение сработало для меня.
if(unlink(FCPATH . 'uploads/'.$filename)){ echo "Deleted"; }else{ echo "Found some error"; }
Этот код также может обрабатывать непустые папки - просто используйте его в качестве помощника.
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); } }