Intereting Posts
Использование PHP «вставить несколько», чтобы вставить все 4 строки одновременно Как разблокировать файл после загрузки файла AWS S3 Helper? Объединение нескольких ассоциативных массивов в один массив ассоциативных массивов PHP. Является ли uniqid («») хорошим практическим решением для создания уникальной и последовательной стороны сервера? Установка RabbitMQ PHP: Неустранимая ошибка: Class 'AMQPConnection' не найден При настройке переменных среды в директивах Apache RewriteRule, что заставляет имя переменной иметь префикс «REDIRECT_»? Проблемы с загрузкой файлов PHP Как читать данные из Excel с помощью PHPExcel Получить местоположение из IP-адреса пользователя Генерирование (псевдо) случайных буквенно-цифровых строк как тянуть сообщения от wordpress к другому сайту, отличному от WordPress, на другом хостинге? Размер изображения PHP Weird поведение var_dump Как воспроизводить все видеофайлы в браузере с помощью php? Обнаружение программного обеспечения AdBlocking?

получить все изображения из папки в php

Я использую WordPress. У меня есть папка с изображениями, например mytheme/images/myimages .

Я хочу получить все имена изображений из папки myimages

Пожалуйста, советую мне, как я могу получить название изображения.

Related of "получить все изображения из папки в php"

попробуй это

 $directory = "mytheme/images/myimages"; $images = glob($directory . "*.jpg"); foreach($images as $image) { echo $image; } 

вы можете сделать это просто с opendir функции PHP opendir .

Вот пример:

 $handle = opendir(dirname(realpath(__FILE__)).'/pictures/'); while($file = readdir($handle)){ if($file !== '.' && $file !== '..'){ echo '<img src="pictures/'.$file.'" border="0" />'; } } 
 $dir = "mytheme/images/myimages"; $dh = opendir($dir); while (false !== ($filename = readdir($dh))) { $files[] = $filename; } $images=preg_grep ('/\.jpg$/i', $files); 

Очень быстро, потому что вы просматриваете только нужный каталог.

Проверьте, существуют ли, поместите все файлы в массив, preg grep все файлы JPG, echo new array. Для всех изображений можно попробовать следующее:

 $images=preg_grep('/\.(jpg|jpeg|png|gif)(?:[\?\#].*)?$/i', $files); if ($handle = opendir('/path/to/folder')) { while (false !== ($entry = readdir($handle))) { $files[] = $entry; } $images=preg_grep('/\.jpg$/i', $files); foreach($images as $image) { echo $image; } closedir($handle); } 

Этот ответ специфичен для WordPress :

 $base_dir = trailingslashit( get_stylesheet_directory() ); $base_url = trailingslashit( get_stylesheet_directory_uri() ); $media_dir = $base_dir . 'yourfolder/images/'; $media_url = $hase_url . 'yourfolder/images/'; $image_paths = glob( $media_dir . '*.jpg' ); $image_names = array(); $image_urls = array(); foreach ( $image_paths as $image ) { $image_names[] = str_replace( $media_dir, '', $image ); $image_urls[] = str_replace( $media_dir, $media_url, $image ); } // --- You now have: // $image_paths ... list of absolute file paths // eg /path/to/wordpress/wp-content/uploads/yourfolder/images/sample.jpg // $image_urls ... list of absolute file URLs // eg http://example.com/wp-content/uploads/yourfolder/images/sample.jpg // $image_names ... list of filenames only // eg sample.jpg 

Вот некоторые другие настройки, которые дадут вам изображения из других мест, чем детская тема. Просто замените первые 2 строки в коде выше той версией, которая вам нужна:

Из каталога «Загрузки»:

 // eg /path/to/wordpress/wp-content/uploads/yourfolder/images/sample.jpg $upload_path = wp_upload_dir(); $base_dir = trailingslashit( $upload_path['basedir'] ); $base_url = trailingslashit( $upload_path['baseurl'] ); 

С родительской темы

 // eg /path/to/wordpress/wp-content/themes/parent-theme/yourfolder/images/sample.jpg $base_dir = trailingslashit( get_template_directory() ); $base_url = trailingslashit( get_template_directory_uri() ); 

С детской темы

 // eg /path/to/wordpress/wp-content/themes/child-theme/yourfolder/images/sample.jpg $base_dir = trailingslashit( get_stylesheet_directory() ); $base_url = trailingslashit( get_stylesheet_directory_uri() ); 

Вот мой код

 $dir = '/Images'; $ImagesA = Get_ImagesToFolder($dir); print_r($ImagesA); function Get_ImagesToFolder($dir){ $ImagesArray = []; $file_display = [ 'jpg', 'jpeg', 'png', 'gif' ]; if (file_exists($dir) == false) { return ["Directory \'', $dir, '\' not found!"]; } else { $dir_contents = scandir($dir); foreach ($dir_contents as $file) { $file_type = pathinfo($file, PATHINFO_EXTENSION); if (in_array($file_type, $file_display) == true) { $ImagesArray[] = $file; } } return $ImagesArray; } } 

когда вы хотите получить все изображение из папки, используйте функцию glob` (), встроенную в функцию, которая поможет получить все изображения. Но когда вы получаете все, то когда-нибудь нужно проверить, что все верно, поэтому в этом случае этот код поможет вам. этот код также будет проверять, что это изображение

  $all_files = glob("mytheme/images/myimages/*.*"); for ($i=0; $i<count($all_files); $i++) { $image_name = $all_files[$i]; $supported_format = array('gif','jpg','jpeg','png'); $ext = strtolower(pathinfo($image_name, PATHINFO_EXTENSION)); if (in_array($ext, $supported_format)) { echo '<img src="'.$image_name .'" alt="'.$image_name.'" />'."<br /><br />"; } else { continue; } } 

Чтобы получить больше информации

http://php.net/manual/en/function.glob.php

Вы можете просто показать свой фактический каталог изображений (менее безопасный). Всего 2 строки кода.

  $dir = base_url()."photos/"; echo"<a href=".$dir.">Photo Directory</a>";