2009-08-21 6 views
0

Кто-то попросил меня создать галерею изображений PHP, которая будет считывать изображения из каталога, а затем создавать миниатюры для галереи. Существует один каталог с thumnails и один каталог с полноразмерными изображениями.PHP Галерея галереи изображений

Я читал имена файлов из каталога/thumb/и вставлял каждое имя файла в качестве значения в thumbArray. Оттуда я выделяю значения в thumbnail src (<img src="<?php echo $thumbArray[$i]; ?>" />), где $ i - просто счетчик. Таким образом, миниатюрные изображения создаются из массива, но когда вы нажимаете на миниатюру, он запрашивает? Filename в URL-адресе. Используя $ _SERVER ['QUERY_STRING'], я затем прочитал строку запроса и ввел запрос (имя файла) в большой <img src"<?php echo $_SERVER['QUERY_STRING']; ?>" />. Хотя это и ограничено. Поскольку я теперь не могу прочитать массив, как контрольную точку, и больше не может указывать вперед или назад в массиве.

Я теперь чувствую больше смысла?

Пожалуйста, помогите ...

<?php 
    $i = 0; 

    /* Large file name and thumbnail file name must match */ 
    /* Large image size = 480px x 300px */ 
    echo '<img class="frameImg" src="images/large/'.$_SERVER['QUERY_STRING'].'" />'; 

    ?> 
    <p id="prevNext"><a href="#">&lt;&lt; Prev </a> || <a href="#"> Next &gt;&gt;</a></p> 
    </div> 
    <div id="thumbs"> 
    <ul> 
    <?php 
    /* Must change $dir to the full path of directory all the way from root /home/user/domain/images/thumb */ 
    $dir = "*************************"; 
    $dh = opendir($dir); 

    /* Thumbnail file name and large file name must match */ 
    $thumbArray = array(); 
    while (($file = readdir($dh)) !== false) { 
     if ($file != "." && $file != "..") { 
      $thumbArray[$i]=$file; 
      echo '<li id="'.$i.'"><a href="?'.$thumbArray[$i].'"><img src="images/thumb/'.$thumbArray[$i].'" alt="Alt for '.$thumbArray[$i].'" /></a></li>'; 
      $i++; 
     } 
    } 
    closedir($dh); 
    ?> 

ответ

1

, если я вас правильно понимаю вам просто нужно выбрать следующие значения и ПРЕД от вашего $ thumbArray [$ я] Array.

например.

$prevThumb = $thumbArray[($i-1)]; 
$nextThumb = $thumbArray[($i+1)]; 

Конечно, для первого и последнего вы должны проявлять особую осторожность. (И проверка сущего элемента)


EDIT: хорошо я понимаю.

Измените свой код. вы должны прочитать свой каталог на каждой странице. поэтому почему бы не прочитать его поверх кода в массиве и пропустить этот массив для создания списка миниатюр.

для кнопок prev/next теперь вы можете использовать индекс из вашего уже построенного массива, чтобы найти имя файла для предыдущего/следующего изображения.

Я сделал себя понятным?

+0

Спасибо. Наверное, я не понимаю. Следующие и предыдущие кнопки предназначены для большого изображения. В настоящее время большой файл не читает из массива, это просто чтение с URL-адреса, поэтому я не могу сделать то, что вы сказали. По существу, у меня возникают проблемы с получением большого изображения для чтения из массива ... –

Смежные вопросы