2011-01-09 17 views
1

ご挨拶、私はjQueryの写真スライダーの形で、サイトのフロントページに特集フォトアルバムから4枚のランダム写真を追加してい選択ランダム写真、PHP

。すべての画像が同じサイズでなければならないので、水平の写真のみを選択してシャッフルし、4にトリミングします。ここで使用しているコードはあります。私の質問 - これを行うためのより簡単で、おそらくより効率的な方法がありますか?または私の方法はかなり健全ですか?

ありがとうございます!

$getImages = $gallery_db->query("SELECT * FROM images WHERE album = '5'"); //sample SQL 
$imagesArr = array(); 
while ($image = $getImages->fetch()) { 
    $path = "http://somewhere.com/gallery/photos/" . 
$image['album'] . "/" . $image['filename'] . ".jpg"; //All files are .jpg 
     list ($width, $height) = getimagesize($path); 
     if ($width > $height) { 
      $imagesArr[] = $path; 
     } 
    } 
    shuffle($imagesArr); 
    array_splice($imagesArr, 4) 

を出力するように、その後、:

foreach ($imagesArr as $path) { 
     echo "<img src=\"$path\" width=\"220\" height=\"110\"/><br/>\n"; 
    } 

答えて

1

あなたのソリューションだけで罰金に見える、それはかなりシンプルでまっすぐ進むのです。しかし、早めの最適化がすべての悪の根源だということを覚えておいてください。

データベースに各画像のサイズを格納することで、特定のサイズの画像をすべて取り込み、4枚の画像をランダムに取り込むことができます。

+0

これはまったく悪い考えではありません。私は、既存のアルバムを通って、手動で各サイズを入力して、私が上記と同じ方法で各行を更新できることを痛感するとタイプしようとしていました。ありがとう:) – NightMICU

+0

うん、ちょうどあなたの画像をループし、getimagesizeを使用して寸法を得る:)。 – alexn

関連する問題