【问题标题】:PHP IS_DIR Condition Not Working In Loop With ContinuePHP IS_DIR 条件不能在循环中继续工作
【发布时间】:2018-08-26 14:39:47
【问题描述】:

我知道这是一个愚蠢的问题。
但是我已经敲了一个多小时才让它起作用。

$path = '/dir/path';
$files = scandir($path);
foreach ($files as $file) {
    if (($file === '.' || $file === '..') || (is_dir($file))) continue;
    if (empty($file)) {
        echo $file.'<br>';
    }
}

假设我只想显示目录中的空文件而不是内容子目录。

如何使is_dir 条件与continue 语句一起使用?

提前致谢。

【问题讨论】:

  • empty() 在这里可能是错误的 - 你可能想要filesize()
  • @NigelRen 如何使用它来排除子目录?我还是想不通。谢谢。
  • 无需分别检查...is_dir() 也可以处理。
  • @simon 我想通了。我忘了让它成为完整路径,is_dir($path.'/'.$file) 解决了它。感谢您的回复。

标签: php if-statement foreach continue scandir


【解决方案1】:

这个小错字提醒我在出现问题时开始打印或回显。 这样我可以更快地找到解决方案。

错字is_dir需要完整路径才能执行,所以正确的代码是is_dir($path.'/'.$file)

$path = '/dir/path';
$files = scandir($path);
foreach ($files as $file) {
    if (($file === '.' || $file === '..') || is_dir($path.'/'.$file)) continue;
    if (empty($file)) {
        echo $file.'<br>';
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 2022-07-07
    • 1970-01-01
    • 2020-11-29
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多