Hủy liên kết PHP nếu tồn tại

Tuy nhiên, nếu tệp không thể bị xóa thì nó sẽ trả về giá trị FALSE. Hơn nữa, một lỗi cảnh báo sẽ được bỏ qua bởi PHP

Ví dụ: nếu tệp không tồn tại, thì cảnh báo sau sẽ xảy ra

Cảnh báo. hủy liên kết ([tên tệp]). Không có tệp hoặc thư mục như vậy trong /path/to/file trên dòng [số dòng]

Do đó, có lẽ nên kiểm tra xem tệp có tồn tại hay không trước khi bạn cố xóa nó

Sử dụng PHP để xóa một tập tin nếu nó tồn tại

Trong hầu hết các trường hợp, bạn sẽ muốn đảm bảo rằng một tệp thực sự tồn tại trước khi bạn cố gắng xóa nó. Rất may, điều này khá dễ thực hiện với hàm is_writable

//If the file exists and is writeable
if(is_writable($filePath)){
    //Delete the file
    $deleted = unlink($filePath);
}

Trong ví dụ trên, mã của chúng tôi sẽ chỉ cố gắng xóa tệp nếu is_writable trả về giá trị TRUE

Kết quả là chúng ta có thể tránh mọi thông báo E_WARNING xấu

các vấn đề về hủy liên kết và quyền

Lý do chúng tôi sử dụng is_writable thay vì is_file là is_writable sẽ giúp bảo vệ khỏi các vấn đề về quyền

Điều này là do chức năng không chỉ kiểm tra xem tệp có tồn tại không. Nó cũng kiểm tra xem PHP có quyền ghi vào tệp không. Nếu PHP không có quyền ghi vào tệp thì nó sẽ không thể xóa nó

Nếu PHP không có quyền xóa tệp được đề cập, thông báo cảnh báo sau sẽ bị bỏ qua

Cảnh báo. hủy liên kết ([tên tệp]) [chức năng. hủy liên kết]. Quyền bị từ chối

Trong những trường hợp như thế này, bạn sẽ cần cấp cho PHP quyền truy cập ghi vào thư mục được đề cập. Tuy nhiên, điều đó nằm ngoài phạm vi của bài viết này

Xóa một tệp nếu nó cũ hơn X ngày

Nếu bạn chỉ muốn PHP xóa các tệp cũ hơn một ngày, v.v. , sau đó bạn có thể làm một cái gì đó như thế này

//Full path or relative path to the file that
//you want to delete
$filePath = 'file.txt';

//Get the last modified time of the file
$lastModified = filemtime($filePath);

//Get the current timestamp
$now = time();

//Calculate the number of seconds that have passed
//since the file was last modified.
$secondsSince = $now - $lastModified;

//There are 86400 seconds in a day.
$deleteAfter = 86400;

//If the file is older than a day
if($secondsSince >= $deleteAfter){
    if(is_writable($filePath)){
        unlink($filePath);
    }
}

Trong đoạn mã PHP ở trên, chúng tôi đã nhận được ngày sửa đổi cuối cùng của tệp. Nếu 86400 giây đã trôi qua kể từ khi tệp được sửa đổi lần cuối, chúng tôi sẽ cố gắng xóa nó

Rõ ràng, bạn có thể thay đổi khoảng thời gian này để phù hợp với nhu cầu của riêng bạn. Ví dụ: nếu bạn muốn xóa tệp nếu nó cũ hơn một giờ, thì bạn sẽ thay đổi biến $deleteafter thành 3600

Hàm unlink() trả về true nếu nó xóa tệp thành công hoặc false nếu ngược lại. Nếu $filename không tồn tại, hàm unlink() cũng đưa ra cảnh báo và trả về

$filename = 'readme.txt'; if (unlink($filename)) { echo 'The file ' . $filename . ' was deleted successfully!'; } else { echo 'There was a error deleting the file ' . $filename; }

Code language: HTML, XML (xml)
0

Các ví dụ về tệp xóa PHP

Hãy lấy một số ví dụ về việc sử dụng hàm unlink()

1) Ví dụ xóa tệp PHP đơn giản

Ví dụ sau sử dụng hàm unlink() để xóa readme. tập tin txt

$filename = 'readme.txt'; if (unlink($filename)) { echo 'The file ' . $filename . ' was deleted successfully!'; } else { echo 'There was a error deleting the file ' . $filename; }

Code language: HTML, XML (xml)

2) Xóa tất cả các tệp trong thư mục khớp với mẫu

Ví dụ sau xóa tất cả các tệp có. tiện ích mở rộng tmp

$dir = 'temp/'; array_map('unlink', glob("{$dir}*.tmp"));

Code language: HTML, XML (xml)

Làm thế nào nó hoạt động

  • Đầu tiên, xác định một biến lưu trữ đường dẫn đến thư mục mà bạn muốn xóa tệp
  • Thứ hai, sử dụng hàm

    $filename = 'readme.txt'; if (unlink($filename)) { echo 'The file ' . $filename . ' was deleted successfully!'; } else { echo 'There was a error deleting the file ' . $filename; }

    Code language: HTML, XML (xml)
    1 để tìm kiếm tất cả các tệp trong thư mục

    $filename = 'readme.txt'; if (unlink($filename)) { echo 'The file ' . $filename . ' was deleted successfully!'; } else { echo 'There was a error deleting the file ' . $filename; }

    Code language: HTML, XML (xml)
    2 có phần mở rộng

    $filename = 'readme.txt'; if (unlink($filename)) { echo 'The file ' . $filename . ' was deleted successfully!'; } else { echo 'There was a error deleting the file ' . $filename; }

    Code language: HTML, XML (xml)
    3 và chuyển kết quả đó cho hàm

    $filename = 'readme.txt'; if (unlink($filename)) { echo 'The file ' . $filename . ' was deleted successfully!'; } else { echo 'There was a error deleting the file ' . $filename; }

    Code language: HTML, XML (xml)
    4 để xóa các tệp

Nói chung, bạn có thể thay đổi mẫu để xóa tất cả các tệp phù hợp trong một thư mục bằng cách sử dụng các hàm

$filename = 'readme.txt'; if (unlink($filename)) { echo 'The file ' . $filename . ' was deleted successfully!'; } else { echo 'There was a error deleting the file ' . $filename; }

Code language: HTML, XML (xml)
5, unlink()

$filename = 'readme.txt'; if (unlink($filename)) { echo 'The file ' . $filename . ' was deleted successfully!'; } else { echo 'There was a error deleting the file ' . $filename; }

Code language: HTML, XML (xml)
1

Làm cách nào để hủy liên kết chức năng trong PHP?

PHP. chức năng hủy liên kết () . Nó tương tự như hàm unlink() của UNIX. Tên tệp $ được gửi dưới dạng tham số cần xóa và hàm trả về True nếu thành công và sai khi thất bại. The unlink() function is an inbuilt function in PHP which is used to delete files. It is similar to UNIX unlink() function. The $filename is sent as a parameter that needs to be deleted and the function returns True on success and false on failure.
Hàm unlink() sẽ xóa liên kết tới tệp . Nếu đường dẫn đặt tên cho một liên kết tượng trưng, ​​unlink() sẽ xóa liên kết tượng trưng được đặt tên theo đường dẫn và sẽ không ảnh hưởng đến bất kỳ tệp hoặc thư mục nào được đặt tên theo nội dung của liên kết tượng trưng.

Làm cách nào để hủy liên kết thư mục trong PHP?

php hàm delTree($dir) { $files = array_diff(scandir($dir), mảng('. ', '. ')); . unlink("$dir/$file"); ?>

Làm cách nào để kiểm tra xem tệp có tồn tại trong PHP không?

Hàm file_exists() kiểm tra xem tệp hoặc thư mục có tồn tại không. Ghi chú. Kết quả của chức năng này được lưu trữ. Sử dụng clearstatcache() để xóa cache.