我有这个简单的脚本来显示文件夹中的所有图像。
<?php
foreach(glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE) as $images)
{
$filecount = count(glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE));
if ($filecount >1)
{
echo "<img width='75' height='auto' style='margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$images."\">";
}
else
{
echo "<img width='200' height='auto' style='margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$images."\">";
}
}
?>
我想显示文件夹中的文件数量。给我下面的尝试。我的问题是这显示了每张图片前的文件数量。
if ($filecount >1)
{
echo '' . $user . ' ' .'added ' . ' ' . $filecount . ' ' . 'new photos';
echo "<img width='75' height='auto' style='margin-right: 3px; alt='".$row["caption"] ."' src=\"".$images."\">";
}
如何在显示图像组之前显示文件数?
答案 0 :(得分:0)
只有在收集文件后才需要显示文件数
你可以通过在循环之前声明filecount变量来完成它,然后你需要在每次循环进入下一个结果时对值进行计数和求和,并最终显示文件总数。
以下是代码的编写方式:
<?php
$filecount = 0;
foreach(glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE) as $images)
{
$tempFileCount = count(glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE))
$filecount += $tempFileCount;
if ($tempFileCount > 1)
{
echo "<img width='75' height='auto' style='margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$images."\">";
}
else
{
echo "<img width='200' height='auto' style='margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$images."\">";
}
}
if($filecount > 1)
{
echo '' . $user . ' ' .'added ' . ' ' . $filecount . ' ' . 'new photos';
}
?>
答案 1 :(得分:0)
首先创建一个将所有图像作为数组返回的函数。如果glob php函数出错,这将抛出一个异常(大部分都不会发生,但值得在发生时知道它)。该函数将使代码更清晰。
<?php
function getAllImagesOnDirectory($directory) {
$imagesArray = glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE);
if(!is_array($imagesArray)) {
throw new RuntimeException("There is a problem getting images on directory " . $directory);
}
return $imagesArray;
}
//Then we call this function to get all the images.
$allImagesOnFilePath = getAllImagesOnDirectory($filePath);
$numberOfImages = count($allImagesOnFilePath);
if($numberOfImages > 0) {
echo '<p>' . $user . ' added ' . $numberOfImages . ' new photos</p>';
//If the number of images is more than 0 then traverse all the images and echo them
foreach($allImagesOnFilePath as $oneImage) {
echo "<img style='max-width:100%;height:auto;margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$oneImage."\">";
}
}
else {
//The user has no uploaded images
echo '<p>' . $user . ' has not added new photos yet :(</p>';
}
这样我们就可以在使用$numberOfImages
之前使用foreach
,从而按照您的要求进行操作
我们这里还使用style属性为图像应用宽度和高度。请参阅此文章,了解如何制作可自动缩放的图片:http://unstoppablerobotninja.com/entry/fluid-images