当使用php获取图像列表时,如何链接到子目录中的缩略图?

时间:2014-01-10 14:57:23

标签: php thumbnails subdirectory

我很抱歉,如果标题有点模糊......我还是比较新的PHP(3个月左右)另外,我的母语不是英语,所以请耐心等我:)我也有搜索了这个网站并广泛搜索,试图找到解决方案,但没有任何运气。

我在我的images目录中设置了一个脚本,用于扫描所有子目录,然后输出一个链接列表,如果单击这些链接,则会将您带到一个页面,其中显示所选子目录的所有图像。这样一个页面的路径是:

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>";
    }
?>

现在,我的问题: 在我的每个图像子目录中,我有另一个名为'thumbs'的子目录,其中包含 - 是的,你猜对了 - 缩略图。每个缩略图的名称与其上方目录中的相应文件完全相同。现在,我如何将上面代码中的img src指向拇指?

非常欢迎任何帮助!提前谢谢!

编辑:

我再次查看了我的代码,并且我做了一些额外的行。它仍然不起作用,但至少它现在输出缩略图,链接到较大的图像。这是新代码:

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个缩略图。

任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

如果您确定文件夹名称为thumbs,则无法对此进行硬编码。看看以下内容。

echo "<a href='$image'><img src='thumbs/$image'/></a>";

答案 1 :(得分:0)

您可以在路径上执行str_replace

如果图片的路径为mydir\image01\pic01.jpg

str_replace('image01','image01\thumb',$image);

会指向mydir\image01\thumb\pic01.jpg