此脚本查看目录,标识所有gif,jpg,jpeg和png文件,并将其显示在正文部分中。该目录包含图像,然后是每个图像的副本,并在末尾添加了“_t”。显示的“_t”图像是指向全尺寸图像的链接,这些图像显示在灯箱中。它本质上是一个缩略图系统。
图片下方是删除了目录/扩展名的文件名,存储为$ filename。
它是Lightbox2的显示脚本的改编版,写作黑客,用自动生成的缩略图显示内容。我的问题是关于在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 "<table border=1><td><a href='".$image_dir.$image_file."' title='$filename' rel='".$rel."' data-lightbox=".$filename.">
<img src='".$image_dir.$filename."_t.".$filetype."' alt='".$filename."' width='100' height='80' title=''/ ><br>
$filename</td>
</a>
" ."\n ";
}
}
}
?>
&lt;&lt; / A&GT;是我在文件名中拉出每个缩略图下方的“标题”。但是,该脚本会导致图像的直下列(以及每个图像下方的文件名),因为它会为每个图像执行换行。
我想要做的是让表格单元格(或div等)出现在彼此旁边,例如:
[] [] [] [] [] []
..然后在5个缩略图处开始一个新行。
如何格式化 echo 中的内容,在 foreach 期间,它会导致每行回显5个图像,并显示$ filename每个图像,然后在它下面开一个新行?
编辑:代码最初来自http://www.fatbellyman.com/webstuff/lightbox_gallery/index.php
答案 0 :(得分:0)
我使用这个来生成具有特定行数的循环(这里是测试)中的表:
<?php
$table_rows=5;
$table = "<table border=1><tbody>";
$i = 1;
for ($j = 0; $j < 13; $j++){
if($i == 1) {
$table .= "<tr>";
}
$table .= "<td>".$j." ".$i."</td>";
$i = (($i+1)%$table_rows);
if($i == 1) {
$table .= "</tr>";
}
}
if($i != 1){
$table .= "</tr>";
}
$table .= "</tbody></table>";
echo $table;
?>
我确信这不是最简单的方法,代码看起来很糟糕,但它通常对我有用。
答案 1 :(得分:0)
以下是我为实现这一目标所做的工作:
<?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';
$piccounter = 0; /* this is how we monitor the length of the rows */
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){
/*Variable $piccounter is the number of thumbnails across in the page per row*/
if ($piccounter >= 6){ echo "<tr />"; $piccounter=0; } /*Every 6, drop in a </tr> and reset the variable for the new row */
echo "<td><a href='".$image_dir.$image_file."' title='$filename' rel='".$rel."' data-lightbox=".$filename.">
<img src='".$image_dir.$filename."_t.".$filetype."' alt='".$filename."' width='100' height='80' title=''/ ><br>
$filename<br/>
</a></td>"; /*$filename is both the image name AND the caption in expanded lightbox*/
$piccounter++; /*After each image, add 1 to the $piccount counter to keep track of the length of the rows*/
}
}
}
?>
创建变量$ piccounter以跟踪已打印的缩略图数量。当它达到6(或任何数字)时,它会插入一个表格行。否则,foreach过程会创建TD。
在页面本身上,我在这个脚本调用周围添加了表打开/关闭。