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 に答える