3

我正在使用 php 灯箱(这个 - http://www.fatbellyman.com/webstuff/lightbox_gallery/index.php)来自动显示缩略图和图像。我想让标题和图像描述显示在较大的灯箱图像上,从单独的列表(文本文件?)中提取。如果可以在不使用数据库的情况下做到这一点,那将是最好的。

这是在我的画廊页面上:

<?php include 'lightbox_display_function.php'; ?>
<?php lightbox_display('apparel/soiled/icarus/', 'lightbox[icarus]'); ?>

这是 lightbox_display_function.php:

<?php function lightbox_display($dir_to_search, $rel){
        $image_dir = $dir_to_search;
        $dir_to_search = scandir($dir_to_search);
        $image_exts = array('gif', 'jpg', 'jpeg', 'png');
        $excluded_filename = '_t';
            foreach ($dir_to_search as $image_file){
            $dot = strrpos($image_file, '.');
            $filename = substr($image_file, 0, $dot);
            $filetype = substr($image_file, $dot+1);
            $thumbnail_file = strrpos($filename, $excluded_filename);
                if ((!$thumbnail_file) and array_search($filetype, $image_exts) !== false){
echo "<a href='".$image_dir.$image_file."' rel='".$rel."'>
<img src='".$image_dir.$filename."_t.".$filetype."' alt='".$filename."' width='70' height='70' title='$filename'/>
</a>"."\n";
                }
            }
    }
4

1 回答 1

0

您是否有一些示例代码说明您目前如何构建页面,您能否不将它们硬编码为某种关联数组?

图像文件名是否是关键,以便您可以将标题与必要的文件配对?

如果您发布到目前为止的内容,我们可以看看并希望提出建议。

- 更新 -

在调用之前对页面的数组进行硬核,并将数组作为参数包含在内,以便其中的元素可以与函数中的适当图像配对。

<?php include 'lightbox_display_function.php'; ?>
<?php
$titleArray=array();
$titleArray['RedCar.jpg']="Picture of red car";
$titleArray['BlueCar.jpg']="Picture of blue car";
$titleArray['GreenCar.jpg']="Picture of green car";
lightbox_display('apparel/soiled/icarus/', 'lightbox[icarus]',$titleArray); 
?>

所以现在在函数中我们有了可以使用的信息

    <?php function lightbox_display($dir_to_search, $rel,$titleArray){
            $image_dir = $dir_to_search;
            $dir_to_search = scandir($dir_to_search);
            $image_exts = array('gif', 'jpg', 'jpeg', 'png');
            $excluded_filename = '_t';
                foreach ($dir_to_search as $image_file){
                $dot = strrpos($image_file, '.');
                $filename = substr($image_file, 0, $dot);
                $filetype = substr($image_file, $dot+1);
                $thumbnail_file = strrpos($filename, $excluded_filename);

                $title="";
                if (array_key_exists($filename, $titleArray)) { //check if the filename matches a key in the array
                   $title = $titleArray[$filename]; //match, so set $title to equal the title set for that image name in the array
                }

                if ((!$thumbnail_file) and array_search($filetype, $image_exts) !== false){
                     //At this point $title can be included in the echo or used in some fashion, put is paired up with the appropriate image.
                     echo "<a href='".$image_dir.$image_file."' rel='".$rel."'>
                     <img src='".$image_dir.$filename."_t.".$filetype."' alt='".$filename."' width='70' height='70' title='$filename'/>
                     </a>"."\n";
                    }
                }
        }

我还没有测试过,但它应该给你一些可以使用的东西,如果没有别的理论的话。

于 2013-02-18T14:11:30.733 回答