首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迭代PHP文件并删除任何没有内容的文件

迭代PHP文件并删除任何没有内容的文件
EN

Stack Overflow用户
提问于 2015-09-16 19:39:54
回答 2查看 56关注 0票数 3

我有一个文件数组,每个文件都有完整的目录路径。我需要迭代我的文件数组,然后删除其中0字节/非内容的文件。

files.txt

代码语言:javascript
复制
/lib/Zend/Gdata/App/LoggingHttpClientAdapterSocket.php
/lib/Zend/Gdata/App/Extension.php
/lib/Zend/Gdata/App/MediaEntry.php
/lib/Zend/Gdata/App/FeedEntryParent.php
/lib/Zend/Gdata/App/AuthException.php
/lib/Zend/ProgressBar/Adapter.php
/lib/Zend/ProgressBar/alias.php
/lib/Zend/Locale/code.php
/lib/Zend/Server/Reflection/Function/article.php
/lib/Zend/Server/Reflection/ReturnValue.php
/lib/Zend/Server/Reflection.php
/lib/Zend/Dojo/BuildLayer.php
/lib/Zend/Tag/Cloud/start.php
/lib/Zend/Tag/Cloud/user.php
/lib/Zend/Tag/Item.php
/lib/Zend/Tag/Cloud.php
/lib/Zend/Ldap/Filter/Not.php
/lib/Zend/Ldap/Filter/And.php
/lib/Zend/Ldap/Filter/Exception.php
/lib/Zend/Ldap/Node.php
/lib/Zend/Ldap/Exception.php

代码语言:javascript
复制
// list of files to download
$lines = file('files.txt');

// Loop through our array of files from the files.txt file
foreach ($lines as $line_num =>$file) {
    echo htmlspecialchars($file) . "<br />\n";

    // delete empty files
}
EN

回答 2

Stack Overflow用户

发布于 2015-09-16 19:44:56

到目前为止,您的基本循环看起来不错,我想接下来您感兴趣的是filesize()unlink()

代码语言:javascript
复制
$lines = file('files.txt', FILE_IGNORE_NEW_LINES);

foreach ($lines as $line_num => $file) {
    $file_label = htmlspecialchars($file);
    echo $file_label . "<br />\n";

    if (!file_exists($file)) {
        echo "file " . $file_label . " does not exist<br />\n";
    } else if (filesize($file) === 0) {
        echo "deleting file: " . $file_label . "<br />\n";
        unlink($file);
    }
}

尽管您确实应该小心这一点,以确保它只删除特定目录中的文件,但可能会有一个不应该删除的文件的白名单,等等。

更新注释中的一个很好的注释是使用file()调用中的FILE_IGNORE_NEW_LINES从返回的每一行中删除\r\n字符

票数 2
EN

Stack Overflow用户

发布于 2015-09-16 19:46:05

它有两个函数,一个是检查文件大小的filesize()函数,另一个是file_exists()函数,用于检查文件是否存在。若要删除文件,请使用unlink()函数。

代码语言:javascript
复制
foreach ($lines as $line_num =>$file) {
    if(file_exists($file) && filesize($file) === 0) {
        unlink($file);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32617295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档