0

2 つの異なるフォルダーから画像を読み込む必要があります。各サムネイルには、関連付けられた大きなバージョン (同じ名前、異なるフォルダー) があります。
大きな pics フォルダに 3 つのファイルがあり、thumbs フォルダに 3 つのファイルがあり、9 つのリンクを取得しています。各サムネイルは、メイン フォルダ内の写真の数の 3 回または x 倍繰り返されます

これはコードです:

<?php
foreach (glob("images/*.jpg") as $large) 
foreach (glob("images/thumbs/*.jpg") as $thumb)
{
echo ("<div class='thumbnail'><a href='$large'><img src='$thumb'/></a></div>");
}
?>  

foreach glob 行の順序を逆にすると、サムネイルの数の x 倍のリンクが得られます。私は自分自身を理解してくれたことを願っています、私はこれが初めてです。
ありがとう!

4

2 に答える 2

3

あなたの2つの込み入ったforeachは、実際には次のことを意味します:

  • 含まれていない 3 つの画像のそれぞれについてthumbs
  • の3つの画像をループしますthumbs

したがって、合計9回の反復:-)


親指ではない画像をループしたい場合は、最初の画像だけが必要です。
サムの画像だけをループしたい場合は、2 番目の画像だけが必要です。


すべての画像 : large+thumb が同時に必要な場合、および大きな画像の名前が Thumb と同じ場合、ファイルの名前を取得するために必要なループは 1 つだけです。

その名前がある場合は、必要なイメージに応じて" images/thumbs/" または " " を先頭に追加します。images/

テストされていませんが、次のようなものが役立つかもしれません:

$counter = 0; 
foreach (glob("images/thumbs/*.jpg") as $pathToThumb)
{
    $filename = basename($pathToThumb);
    $pathToLarge = 'images/' . $filename;
    echo ("<div class='thumbnail'><a href='$pathToLarge'><img src='$pathToThumb'/></a></div>");
    $counter++;
}
于 2009-11-27T18:01:20.830 に答える
0

1つの解決策は、「グロブ」リターンを配列にロードして、そのように参照することだと思います。

<?php
$largeArray = glob("images/*.jpg");
$counter = 0; 
foreach (glob("images/thumbs/*.jpg") as $thumb)
{
echo ("<div class='thumbnail'><a href='$largeArray[$counter]'><img src='$thumb'/></a></div>");
$counter++;
}
?>
于 2009-11-27T18:00:56.090 に答える