我很抱歉,如果标题有点模糊......我还是比较新的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个缩略图。
任何想法如何解决这个问题?
答案 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