PHP图库库数组

时间:2009-08-21 21:39:37

标签: php image gallery

有人让我创建了一个PHP图像库,它将从目录中读取图像,然后为图库创建缩略图。有一个带有thumnails的目录,还有一个带有fullsize图像的目录。

我从/ thumb /目录中读取文件名,并将每个文件名作为值插入thumbArray。从那里我回显了缩略图src(<img src="<?php echo $thumbArray[$i]; ?>" />)中的值,其中$ i只是一个计数器。因此缩略图图像是从数组中生成的,但是当您单击缩略图时,它会在文件中查询文件名。使用$ _SERVER ['QUERY_STRING']然后我读取所述查询字符串并将查询(filename)插入到大<img src"<?php echo $_SERVER['QUERY_STRING']; ?>" />中。但这是有限的。因为我现在无法读取数组,作为参考点,并且不能再在数组中向前或向后指向。

我现在更有意义吗?

请帮忙......

    <?php 
    $i = 0;

    /* Large file name and thumbnail file name must match */
    /* Large image size = 480px x 300px */
    echo '<img class="frameImg" src="images/large/'.$_SERVER['QUERY_STRING'].'" />';

    ?>
    <p id="prevNext"><a href="#">&lt;&lt; Prev </a> || <a href="#"> Next &gt;&gt;</a></p>
  </div>
  <div id="thumbs">
    <ul>
     <?php
    /* Must change $dir to the full path of directory all the way from root /home/user/domain/images/thumb */
    $dir = "*************************";
    $dh = opendir($dir);

    /* Thumbnail file name and large file name must match */
    $thumbArray = array();
    while (($file = readdir($dh)) !== false) {
        if ($file != "." && $file != "..") {
            $thumbArray[$i]=$file;
            echo '<li id="'.$i.'"><a href="?'.$thumbArray[$i].'"><img src="images/thumb/'.$thumbArray[$i].'" alt="Alt for '.$thumbArray[$i].'" /></a></li>';
            $i++;
        }
    }
    closedir($dh);
    ?>

1 个答案:

答案 0 :(得分:1)

如果我理解正确你只需要从$ thumbArray [$ i]数组中选择next和prev值。

例如

$prevThumb = $thumbArray[($i-1)];
$nextThumb = $thumbArray[($i+1)];
当然,对于第一个也是最后一个,你必须格外小心。 (并检查元素是否存在)


编辑: 好的我明白了。

重新安排您的代码。你必须在每个页面上阅读你的目录。那么为什么不在代码顶部将其读入数组,并循环遍历此数组以构建缩略图列表。

对于prev / next按钮,您现在可以使用已构建数组中的索引来查找prev / next图像的文件名。

我让自己明白了吗?