Как получить изображения из папки и отобразить их на странице, могу ли я изменить ее размер в самой php или мне нужно изменить ее размер и загрузить ее отдельно, чтобы отобразить ее как миниатюры?
Вот базовая структура для перемещения каталога и выполнения чего-то с файлами изображений (данные '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 и сохранять их для отображения.
Я думаю, это может вам помочь!
<? $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'/>"; } ?>
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' >"; } ?>
Посмотри на:
Чтобы изменить размер изображений непосредственно с PHP:
Вот один лайнер, основанный на другом ответе на аналогичный вопрос:
// 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 , но 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. } } } }
Код проверен и работает.