Прошу прощения, если название немного расплывчато ... Я все еще относительно новичок на PHP (3 месяца или около того). Кроме того, мой родной язык не английский, поэтому, пожалуйста, медведь со мной :) Я также искал этот сайт и google, чтобы найти решение, но без везения.Как мне связать с эскизами в подкаталоге при использовании php для получения списка изображений?
У меня есть сценарий, установленный в моей директории изображений, которая сканирует все подкаталоги, а затем выводит список ссылок, которые, если щелкнуть, перейдут на страницу, на которой отображаются все изображения выбранного подкаталога. Путь к такой странице будет:
www.mysite.com/images/list_images.php?folderName=RandomFolder
Код для этого:
images/index.php
<?php
$path = 'images/' ;
$results = scandir($path);
for ($i=0;$i<count($results);$i++)
{
$result=$results[$i];
if ($result === '.' or $result === '..')
continue;
if (is_dir($path . '/' . $result))
{
echo "<a href='list_images.php?folderName=$result'>$result</a><br/>";
}
}
?>
--------------------
list_images.php
<?php
if(isset($_GET['folderName']))
$folder=$_GET['folderName'];
$path = 'images/'.$folder.'/' ;
$images = glob($path . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
foreach ($images as $image)
{
echo "<a href='$image'><img src='$image'/></a>";
}
?>
Теперь мой вопрос: В каждом из моих изображений подкаталогов я другой подкаталог называется «пальцы», что содержит - да, вы догадались - миниатюры. Каждый эскиз называется точно таким же, как его соответствующий файл в каталоге над ним. Теперь, как бы я сделал img src в приведенном выше коде, чтобы указать на большой палец?
Любая помощь была бы очень желанной! Заранее спасибо!
EDIT:
Я снова посмотрел на свой код, и я сделал несколько дополнительных линий. Он по-прежнему не работает, но по крайней мере теперь он выводит миниатюры, которые ссылаются на большее изображение. Вот новый код:
list_images.php
if (isset($_GET['folderName'])) $folder=$_GET['folderName'];
$path = 'images/'.$folder.'/' ;
$thumb_path = ''.$path.'/thumbs/';
$thumbs = glob($thumb_path . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$images = glob($path . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
foreach ($thumbs as $thumb){
foreach ($images as $image){
echo "<a class='fancybox' href='$image'><img src='$thumb'/></a>";
}
}
Это своего рода работает сейчас. Единственная проблема заключается в том, что он выводит 13 одинаковых миниатюр для каждого изображения - и он делает это 13 раз (для каталога, содержащего 13 файлов изображений), так что всего 169 эскизов.
Любые идеи, как исправить это?
Спасибо за быстрый ответ. Я уже пробовал то, что вы предлагаете. Он работает, но миниатюрные изображения каким-то образом не работают - они показаны как маленькие «сломанные» изображения ... (я не уверен, что они называются) –