0

私は、ある種のスクリプトの写真で写真を生成して表示しています。その日の写真のギャラリーページがあります(ディレクトリから取得します)。したがって、ディレクトリからすべてのファイルをプルし、現在の日付に達したときに取得します(これは、ファイル名IEと同じです。20120822.jpgは今日表示され、20120823.jpgは明日表示されます)。すべてのディレクトリ画像をループしてギャラリーに表示していますが、現在の日付の後でループを停止して、将来の画像を表示またはロードしないようにします。これが私のコードです..私はただ愚かなことをしていると確信しています..

 <?PHP
   // filetypes to display
        $imagetypes = array("image/jpeg", "image/gif");
 ?>
 <?PHP

   function getImages($dir)
   {
     global $imagetypes;

    // array to hold return value
     $retval = array();

     // add trailing slash if missing
     if(substr($dir, -1) != "/") $dir .= "/";

     // full server path to directory
     $fulldir = "{$_SERVER['DOCUMENT_ROOT']}/$dir";

     $d = @dir($fulldir) or die("getImages: Failed opening directory $dir for reading");
     while(false !== ($entry = $d->read())) {
       // skip hidden files
       if($entry[0] == ".") continue;

       // check for image files
       $f = escapeshellarg("$fulldir$entry");
       $mimetype = trim(`file -bi $f`);
       foreach($imagetypes as $valid_type) {
         if(preg_match("@^{$valid_type}@", $mimetype)) {
           $retval[] = array(
            'file' => "/$dir$entry",
            'size' => getimagesize("$fulldir$entry")
           );
           break;
         }
       }
     }
     $d->close();

     return $retval;
   }
 ?>

 <?PHP
   // fetch image details
   $images = getImages("galleries/photo-of-the-day/images");
 $today = date("Ymd") . ".jpg";

   // display on page
   sort($images, SORT_REGULAR);
   foreach($images as $img ) {
 if ($img == "20120822.jpg" ) {
  break;
  } else { 
 ?>


 <div style="margin-right: 10px; float: left; margin-bottom: 10px; padding-bottom: 10px; border: 1px #CCCCCC solid;">

 <a href="<? echo $img['file']; ?>" rel="prettyPhoto" title="">

 <img class="image-gals" src="<? echo $img['file']; ?>" style="width: 260px; margin-bottom: 0px;padding: 10px; " /></a>

 <a href="<? echo $img['file']; ?>" style="font-size: 10px; padding: 3px 10px 10px 10px;">Download</a>

 </div>
 <? 
 }
 }
 ?>
4

1 に答える 1

0

$imagesこれは、配列にデータを入力している場所です。

$retval[] = array(
    'file' => "/$dir$entry",
    'size' => getimagesize("$fulldir$entry")
);

しかし、それらを比較すると、次のようになります。

foreach($images as $img ) {
    if ($img == "20120822.jpg" ) {

$img配列が含まれます。を確認する必要があります。$img['file']これにはディレクトリ名も含まれているため、画像名だけとは一致しません。

于 2012-08-22T19:25:29.373 に答える