2

私はほぼ60枚の画像を含むディレクトリを持っていますが、HD品質であるため、サイズは約5〜6 MBであり、Webページにすべてをロードすると、サーバーとブラウザにとって時間がかかりすぎて、両方がハングアップします. サーバーで PHP 5.4.20 を使用しているので、DirectoryIterator と LimitIterator を使用したいと思います方法わからないため、投稿の例はあまり明示的ではありませ。この場合、前後に移動します。ディレクトリ内のページネーション ファイルに関するサンプル コードを教えてください。

更新: いくつかのコードを表示

今、これは私がファイルを読む方法です:

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

アリスターナの言うことは絶対に正しい。おそらく、画像のサイズを適切なファイル形式、品質、サイズに変更する必要があります。少なくとも、ある種のギャラリーを作成しようとしている場合は、画像マジックのようなものを使用して、ギャラリーの「サムネイル」を作成し、クリックするとフル品質の画像に移動できます。

画像マジックは、さまざまな言語でスクリプト化して、画像をバッチ処理し、プロセスとして実行する場合はサムネイルを作成できます。代わりに、コマンドラインから、ここで言及されているようなものを一度だけ実行することもできます: 画像のバッチサイズ変更ImageMagick を使用して新しいフォルダーに

于 2013-10-01T00:52:03.553 に答える