如何从文件夹中获取图像并将其显示在页面中,是否可以在php中调整大小,或者我必须调整大小并上传它以便以缩略图的形式显示它?
答案 0 :(得分:11)
这是遍历目录并对图像文件执行某些操作的基本结构(给定'images'
是脚本同一目录中的目录)
$image_types = array(
'gif' => 'image/gif',
'png' => 'image/png',
'jpg' => 'image/jpeg',
);
foreach (scandir('images') as $entry) {
if (!is_dir($entry)) {
if (in_array(mime_content_type('images/'. $entry), $image_types)) {
// do something with image
}
}
}
从这里,您可以将图像直接发送到浏览器,为HTML页面生成标签或使用GD functions创建缩略图并存储它们以供显示。
答案 1 :(得分:7)
我认为这可能会对你有帮助!
<?
$string =array();
$filePath='directorypath/';
$dir = opendir($filePath);
while ($file = readdir($dir)) {
if (eregi("\.png",$file) || eregi("\.jpg",$file) || eregi("\.gif",$file) ) {
$string[] = $file;
}
}
while (sizeof($string) != 0){
$img = array_pop($string);
echo "<img src='$filePath$img' width='100px'/>";
}
?>
答案 2 :(得分:2)
eregi
现已弃用,因此您可以使用preg_match
代替
<?php
$string =array();
$filePath='directorypath/';
$dir = opendir($filePath);
while ($file = readdir($dir)) {
if (preg_match("/.png/",$file) || preg_match("/.jpg/",$file) || preg_match("/.gif/",$file) ) {
$string[] = $file;
}
}
while (sizeof($string) != 0){
$img = array_pop($string);
echo "<img src='$filePath$img' >";
}
?>
答案 3 :(得分:1)
看看:
直接从PHP调整图像大小:
答案 4 :(得分:1)
这是一个基于another answer的单行代码来表达类似的问题:
// this will get you full path to images file.
$data = glob("path/to/images/*.{jpg,gif,png,bmp}", GLOB_BRACE);
// this will get you only the filenames
$data= array_map('basename', $data);
最初,我想使用@Imran solution,但mime_content_type
无法使用,服务器(我无法控制)使用旧版本的Apache和Php。
所以我改为使用文件扩展名进行了一些改编,我在这里给出了它。
$imgDir = "images_dir";
// make sure it's a directory
if (file_exists($imgDir)) {
// select the extensions you want to take into account
$image_ext = array(
'gif',
'png',
'jpg',
'jpeg'
);
foreach (scandir($imgDir) as $entry) {
if (! is_dir($entry)) { // no need to weed out '.' and '..'
if (in_array(
strtolower(pathinfo($entry, PATHINFO_EXTENSION)),
$image_ext)) {
// do something with the image file.
}
}
}
}
代码经过测试并正在运行。