0

我有以下代码:

    $path=$_SERVER['DOCUMENT_ROOT'] . "/WOWSlider/data1/images";

    $files= array_diff(scandir($path), array('..',".")); 

    $path2=$_SERVER['DOCUMENT_ROOT'] . "/WOWSlider/data1/images/thumbs";

    $files2= array_diff(scandir($path2), array('..',"."));

foreach($files as $plaatje){

    print("

    <a href='WOWSlider/data1/images/$plaatje' class='highslide' onclick='return hs.expand(this)'>
        <img src='WOWSlider/data1/images/thumbs/$thumbnail' alt='Highslide JS'
            title='Click to enlarge' /></a>

    <div class='highslide-caption'>
        $plaatje
    </div>

    ");


}

现在我需要这样的东西:

        $path=$_SERVER['DOCUMENT_ROOT'] . "/WOWSlider/data1/images";

        $files= array_diff(scandir($path), array('..',".")); 

        $path2=$_SERVER['DOCUMENT_ROOT'] . "/WOWSlider/data1/images/thumbs";

        $files2= array_diff(scandir($path2), array('..',"."));

    foreach($files as $plaatje){
foreach($files2 as $thumbnail){

        print("

        <a href='WOWSlider/data1/images/$plaatje' class='highslide' onclick='return hs.expand(this)'>
            <img src='WOWSlider/data1/images/thumbs/$thumbnail' alt='Highslide JS'
                title='Click to enlarge' /></a>

        <div class='highslide-caption'>
            $plaatje
        </div>

        ");


    }
}

但它不起作用。它不会在屏幕上打印任何内容。

有人知道该怎么做吗?

我正在尝试制作一种相册。$plaatjes 是照片,$thumbnails 是照片的缩略图。

因为缩略图有不同的文件名,所以我需要在 foreach 中使用不同的变量,因此在 print() 中也需要使用不同的变量。

我不想让文件名不同,因为如果我需要添加其他照片,我不必在代码中做任何事情。

4

1 回答 1

0

除非文件名彼此相关,例如

kittens.jpg   -> kittens_thumb.jpg

在额外的东西 ( _thumb) 是不变的情况下,您无法以这样的自动化方式执行任何操作。您必须手动构建一个将图像与其缩略图相关联的列表。一旦你得到了那个数组,那么你可以使用一个简单的 foreach()。

使用“相关”文件名,您可以执行以下操作:

foreach($files as $file) {
   $base = pathinfo($file, PATHINFO_BASENAME);
   $ext = pathinfo($file, PATHINFO_EXTENSION);
   echo "real file: $base.$ext";
   echo "thumb nail: {$base}_thumb.$ext";
}
于 2013-02-06T19:09:14.347 回答