扫描文件夹并为每个文件夹创建一本书的脚本?

时间:2012-09-21 14:37:44

标签: php

我是一名摄影师,而这正是我想要实现的目标: 我正在努力展示更多的书籍和#34;像这些一个在彼此之下:     http://builtbywill.com/code/booklet/

我可以复制上面链接中为ONE Album / book提供的示例,但我有20多张专辑要在我的画廊中显示,我不想复制/粘贴20次以上相同的代码并更改路径20次以上等所以我决定用php做点什么:

我有文件夹说IMAGES / ALBUMS / ALBUM1到ALBUM10

我需要扫描IMAGES / ALBUM并为每个ALBUM1到ALBUMx文件夹找到所有图像,如下所示:               

这是我到目前为止的代码:

function mySlider()
{
        $album = array(
            'Asia i Marcin' => 'images/albums/asiamarcin/',
            'Aneta i Marcin' => 'images/albums/anetamercin/',
        );
        $dir = $album['Asia i Marcin'];
        //$dir = 'images/asiamarcin/';
        $scan = scandir($dir);  

        for ($i=0; $i<count($scan); $i++) {  
            if ($scan[$i] != '.' && $scan[$i] != '..') {  
            echo ' 
                    <div>
                         <img width="450" heigth="385" src="'. $dir . $scan[$i] . '" alt="'. $scan[$i] . '" /> 
                    </div> 
                ';  
            }    

        }   
}

它远非完美,到目前为止我将它插入我的html中:

<div class="b-load">
    <?php mySlider(); ?>
</div>

我明白了:

 <div>
 <img width="450" heigth="385" src="images/albums/asiamarcin/asiamarcin01.jpg" alt="asiamarcin01.jpg" /> 
 </div> 
 <div>
 <img width="450" heigth="385" src="images/albums/asiamarcin/asiamarcin02.jpg" alt="asiamarcin02.jpg" /> 
 </div> 
 <div>
 <img width="450" heigth="385" src="images/albums/asiamarcin/asiamarcin03.jpg" alt="asiamarcin03.jpg" /> 
 </div> 

理想情况下,我会这样称呼它:

<div class="b-load">
   <?php mySlider('ALBUM1'); ?>
</div>
....
....
<div class="b-load">
  <?php mySlider('ALBUM2'); ?>
</div>
...etc...

我不知道该怎么做:( 我不是程序员,但我想学习,所以我很感激你的帮助。 谢谢, 亚历

1 个答案:

答案 0 :(得分:1)

这样做:

function mySlider($dirName)
{
    $dir = 'images/albums/' . $dirName . '/';
    $scan = scandir($dir);  

    for ($i=0; $i<count($scan); $i++) {  
        if ($scan[$i] != '.' && $scan[$i] != '..') {  
        echo ' 
                <div>
                     <img width="450" heigth="385" src="'. $dir . $scan[$i] . '" alt="'. $scan[$i] . '" /> 
                </div> 
            ';  
        }    

    }   
}