【问题标题】:php glob not returning all filesphp glob不返回所有文件
【发布时间】:2015-10-19 21:16:20
【问题描述】:

我在这里和网络上查看了类似的问题,但没有一个解决方案有效。

我正在使用 glob 从文件夹中返回 177 张图像。只有一些返回。有时一无所获。每次我重新加载页面时,都会加载更多图像。在检查器中,一切看起来都已加载;整个代码应该是这样的。但是查看页面,我可以看到明显缺少图像。

这是我的代码:

<?php

    set_time_limit(0);
    ignore_user_abort(1);

    $images = glob("images/pics/*", GLOB_BRACE);
    foreach ($images as $image) { ?>

    <div class='img_container_2 backing_center' style='background: none'>
        <img style='width: 400px' src = '<?php echo $image; ?>'/>
    </div>
<?php

    }

?>

我在想这可能是一个超时问题,但将限制设置为 0 似乎并没有什么不同。非常感谢任何帮助!

【问题讨论】:

  • 你有没有先测试过foreach (glob("images/pics/*.png") as $image)这样简单的东西?
  • @user2094178 刚刚尝试了您的建议。我仍然遇到同样的问题:/
  • 这很奇怪,试试$images = scandir('images/pics/');

标签: php load return loading glob


【解决方案1】:

您将GLOB_BRACE 指定为 glob 的第二个参数以使其工作。

例如,如果您在以下文件列表中执行glob("{a,b,c}.php", GLOB_BRACE)

a.php

b.php

c.php 

GLOB_BRACE 替换为 GLOB_NOSORT(返回出现在目录中的文件(不排序)。不使用此标志时,路径名按字母顺序排序)

更多详情see globe flags

【讨论】:

    【解决方案2】:

    PHP glob() 函数在您的代码中完美运行。

    你的目录有问题:

    1. 确保您的文件夹包含仅图片
    2. 删除 Thumbs.db 在您的$images 数组中

    删除Thumbs.db

    $key = array_search('Thumbs.db', $images );
    $new_images = unset($images[$key]);
    

    仅查找图像

    $images = glob("images/pics/*.jpg", GLOB_BRACE);
    

    注意:如果您的文件夹中只包含图片,那么您不必在glob 函数中使用.jpg

    【讨论】:

      【解决方案3】:

      我的错,我做了一件愚蠢的事。当它应该设置为相对值时,我将宽度设置为绝对值。我仍然不确定为什么只有一些图像显示而一些没有,但至少它现在已修复。无论如何,谢谢大家的帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-12
        • 2012-12-31
        • 2010-12-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多