在本教程中,我们将通过以下的基础知识来了解 如何在PHP中显示一个文件夹中的图片.这将通过查看一些你可以用来做的代码来完成。
有时,直接从一个目录中显示图片要比 从数据库中显示图片.如果你想学习如何直接从一个文件夹中显示图像文件,请查看下面的步骤。
如何从一个目录中获取图像并显示它们?
这里我们有一个目录叫 图像的目录,我们想在我们的网站上显示其中的所有图片。因此,这里有以下代码:
<?php
//get current directory
$working_dir = getcwd();
//get image directory
$img_dir = $working_dir . "/images/";
//change current directory to image directory
chdir($img_dir);
//using glob() function get images
$files = glob("*.{jpg,jpeg,png,gif,JPG,JPEG,PNG,GIF}", GLOB_BRACE );
//again change the directory to working directory
chdir($working_dir);
//iterate over image files
foreach ($files as $file) {
?>
<img src="<?php echo "images/" . $file ?>" style="height: 200px; width: 200px;"/>
<?php }
?>
输出
PHP函数glob() 是用来检索与指定模式相匹配的文件或目录的列表。
在上面的代码中,我使用了一个模式*.{jpg,jpeg,png,gif,JPG,JPEG,PNG,GIF} 。这是因为经常看到图片的扩展名有时是大写的,有时是小写的。所以我们在这里的模式中使用了小写和大写的扩展名。
这里我使用getcwd() 函数来获取PHP中的当前目录。chdir 函数将改变工作目录为图像目录。
如何从一个文件夹中获取所有的图片,并在一个表格中显示带有名称的图片?
有时,你想从一个文件夹中获取所有的图像(也许还有其他文件)。之后,你想在一个表格中显示带有名称的图片。所以下面的代码是这样的。
<?php
//get current directory
$working_dir = getcwd();
//get image directory
$img_dir = $working_dir . "/images/";
//change current directory to image directory
chdir($img_dir);
//using glob() function get images
$files = glob("*.{jpg,jpeg,png,gif,JPG,JPEG,PNG,GIF}", GLOB_BRACE );
//again change the directory to working directory
chdir($working_dir);
?>
<table width="100%" border="1px">
<tr>
<th>S/N</th>
<th>Image Preview</th>
<th>Image Name</th>
</tr>
<?php
$c = 1;
//iterate over image files
foreach ($files as $file) {
?>
<tr align="center">
<td><?php echo $c;?></td>
<td><img src="<?php echo "images/" . $file ?>" style="height: 100px; width: 100px;"/></td>
<td><?php echo $file ?></td>
</tr>
<?php $c++; } ?>
</table>
输出
显示一个文件夹中的随机图片
这是一篇关于在PHP中随机显示文件夹中的图片的基本 "方法 "文章。有些网站需要这个功能,因为他们有很多种类的图片和众多的类别,这使得他们很难管理他们的图片;因此,他们需要随机地列出网站上的照片。
PHP的shuffle() 函数对一个数组的元素进行随机排序,以得到一个随机的集合。正如API文档所说,它只是 "给定一个现有的排列组合,生成一个随机排列组合的好方法"。
<?php
//get current directory
$working_dir = getcwd();
//get image directory
$img_dir = $working_dir . "/images/";
//change current directory to image directory
chdir($img_dir);
//using glob() function get images
$files = glob("*.{jpg,jpeg,png,gif,JPG,JPEG,PNG,GIF}", GLOB_BRACE );
//shuffle the array element
shuffle($files);
//again change the directory to working directory
chdir($working_dir);
//iterate over image files
foreach ($files as $file) {
?>
<img src="<?php echo "images/" . $file ?>" style="height: 100px; width: 100px;"/>
<?php } ?>
输出
列出目录和子目录中的所有图像文件
你为什么要这样做呢?一个可能的用例是,你有一个图片库网站,有非常多的图片。你需要备份网站的内容,包括所有的图片,但又不想下载数以百万计的文件,或建立一个数据库,从中导出缩略图,然后再重新上传。
为了使这个可能的解决方案奏效,你的服务器必须能够运行PHP。此外,你应该有对包含照片本身的文件夹的写入权限(即完全权限)。
那么,让我们开始吧。我们开始我们的任务清单,在给定的目录中递归地循环浏览子文件夹中的所有图片。
<?php
//get all images from directory and sub directory
function getImg($pattern, $flags = 0) {
$files = glob($pattern, $flags);
foreach( glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir ) {
$files = array_merge($files, getImg($dir.'/'.basename($pattern), $flags));
}
return $files;
}
//to find the all images
$result = getImg('*.{jpg,jpeg,png,gif,JPG,JPEG,PNG,GIF}', GLOB_BRACE);
var_dump($result);
?>
输出
结论
在这篇博文中,我们已经介绍了以下的基础知识如何在PHP中显示一个文件夹中的图片.你现在应该已经掌握了足够的信息,可以在没有太多困难的情况下开始你自己的项目了。如果你在学习本教程时有任何问题,请随时与我们联系或在下面评论。