php 用于删除与动态文本文件不匹配的文件名的脚本
php script to delete file names not matching a dynamic text file
我在 /home/users/images.txt 中创建了一个文本文件 (images.txt),该文件包含 jpeg 文件的名称。例如:
1.jpeg
12.jpeg
33.jpeg
此文件会定期更新并添加新的图像文件名
我正在寻找一个 php 脚本,它可以帮助从 .txt 中读取文件名并从 /home/user/images/ 目录中删除与 .txt 文件中的文件名不匹配的任何文件
我试过下面的代码,但无法正常工作
$array = explode("\n", file_get_contents('/home/user/images.txt'));
$directory = "/home/user/images/";
$files = glob($directory . "*.*");
foreach($files as $file)
{
if (!in_array($file, $array)) {
unlink($directory . $file);
}
}
glob()
返回的名称包含目录前缀,但$array
返回的名称没有。搜索前需要去掉前缀,调用时不需要加unlink()
.
$array = file('/home/user/images.txt', FILE_IGNORE_NEW_LINES);
$directory = "/home/user/images/";
$files = glob($directory . "*.*");
foreach($files as $file)
{
if (!in_array(basename($file), $array)) {
unlink($file);
}
}
我在 /home/users/images.txt 中创建了一个文本文件 (images.txt),该文件包含 jpeg 文件的名称。例如:
1.jpeg
12.jpeg
33.jpeg
此文件会定期更新并添加新的图像文件名
我正在寻找一个 php 脚本,它可以帮助从 .txt 中读取文件名并从 /home/user/images/ 目录中删除与 .txt 文件中的文件名不匹配的任何文件
我试过下面的代码,但无法正常工作
$array = explode("\n", file_get_contents('/home/user/images.txt'));
$directory = "/home/user/images/";
$files = glob($directory . "*.*");
foreach($files as $file)
{
if (!in_array($file, $array)) {
unlink($directory . $file);
}
}
glob()
返回的名称包含目录前缀,但$array
返回的名称没有。搜索前需要去掉前缀,调用时不需要加unlink()
.
$array = file('/home/user/images.txt', FILE_IGNORE_NEW_LINES);
$directory = "/home/user/images/";
$files = glob($directory . "*.*");
foreach($files as $file)
{
if (!in_array(basename($file), $array)) {
unlink($file);
}
}