2

我有一个包含近 60 张图像的目录,但都是高清质量的,所以它们的大小约为 5 到 6 MB,并且将它们全部加载到网页中对于服务器和浏览器来说都是太多时间,所以都挂断了。我也阅读了这篇文章其他文章,因为我在我的服务器中使用 PHP 5.4.20,所以我想使用DirectoryIteratorLimitIterator但是帖子中的示例对我来说并不那么明确,因为我不知道如何在这种情况下向前/向后移动。任何人都可以给我一些关于目录中分页文件的示例代码吗?

更新:显示一些代码

现在这就是我读取文件的方式:

function directoryToArray($directory, $recursive) {
    $array_items = array();
    if ($handle = opendir($directory)) {
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != "..") {
                if (is_dir($directory . "/" . $file)) {
                    if ($recursive) {
                        $array_items = array_merge($array_items, directoryToArray($directory . "/" . $file, $recursive));
                    }
                    $file = $directory . "/" . $file;
                    $array_items[] = preg_replace("/\/\//si", "/", $file);
                } else {
                    $file = $directory . "/" . $file;
                    $array_items[] = preg_replace("/\/\//si", "/", $file);
                }
            }
        }
        closedir($handle);
    }
    return $array_items;
}

$images = directoryToArray("images/portfolio/");
for ($i = 0; $i < count($images); $i++) {
    $old_img_name = explode('/', $images[$i]);
    $new_img_name = $old_img_name[0] . "/" . $old_img_name[1] . '/large/' . $old_img_name[2];

    echo '<div class="span4 element">';
    echo '<div class="hover_img">';
    echo '<img src="' . $images[$i] . '" alt="" />';
    echo '<span class="portfolio_zoom"><a href="' . $new_img_name . '" data-rel="prettyPhoto[portfolio1]"></a></span>';
    echo '</div>';
    echo '</div>';
}
4

1 回答 1

1

阿里斯托纳完全正确。您可能应该将图像大小调整为适当的文件格式、质量和大小。至少,如果你想制作某种画廊,你可以使用像 image magick 这样的东西来为画廊制作“缩略图”,点击它们可能会带你到全质量的图像。

Image magick 可以用多种语言编写脚本,以批量处理您的图像并构建缩略图,如果您希望它作为一个进程运行,或者从命令行您可以一次性完成,就像这里提到的那样: 批量调整图像大小使用 ImageMagick 进入新文件夹

于 2013-10-01T00:52:03.553 回答