Intereting Posts
Центрирование изображения на загруженном изображении в PHP переменная pass между php и javascript без страницы загрузки Как получить дату с номера недели и числа дней и года? Размер изображения в структуре yii Есть ли способ уловить ошибки MySQL и базы данных в PHP? Как заполнить список динамических навигационных меню, следуя моим структурам таблиц, используя php (codeigniter) и mysql mPDF 5.7.1 – изображение отображается как сломанный Если вы включите файл в PHP в цикле, он будет обращаться к файлу каждый раз, когда он будет работать в цикле? Могут ли методы PDO сбой и не бросать PDOException? таблица mysql заблокирована после сбоев php Как развернуть laravel 4.2 на совместном хостинге? Добавить ребенка в xml с помощью PHP simpleXml Почему переменные PHP начинаются с символа знака $? Сообщение об ошибке в zend framework Если в модели или контроллере выбираются зависимые строки?

Отображение изображений из папки с помощью PHP

Я последовал за несколькими сайтами и пришел к следующему:

<?php $imagesDir = base_url() . 'images/eventGallery/'; $files = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE); for ($i = 0; $i < count($files); $i++) { $num = $files[$i]; echo '<img src="'.$num.'" alt="random image">'."&nbsp;&nbsp;"; } ?> 

Он не работает, поскольку ничего не отображается! Что я делаю не так? В указанном каталоге есть два изображения с расширением jpg.

Спасибо за любую помощь!

  1. Что возвращает base_url ()? У вас есть слэш ('/') между базовым url и изображениями?
  2. чувствительность к регистру glob отличается от разных систем, ваши фотографии имеют jpg или JPG или Jpg (и т.д.) расширения?
  3. при создании тегов img вы должны преобразовать пути из файловой системы в веб-путь (относительно корня веб-сайта)
  4. удалить счетчик из цикла

Это рабочая версия вашего кода (хотя я предпочитаю использовать readdir :)):

 define('BASE_URL', dirname(__FILE__)); $imagesDir = BASE_URL . '/images/eventGallery/'; $files = glob($imagesDir . '*.{jpg,jpeg,png,gif,JPG,JPEG,PNG,GIF}', GLOB_BRACE); $len=count($files); for ($i = 0; $i < $len; $i++) { $num = $files[$i]; // transform from file system path to web path - assuming images is in the web root $num = substr($num, strlen(BASE_URL) ); echo '<img src="'.$num.'" alt="random image">'."&nbsp;&nbsp;"; } 

Просто используйте встроенную функцию readdir в PHP

Ссылка: http://php.net/manual/en/function.readdir.php

  <?php if ($handle = opendir('.')) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { echo "$entry\n"; } } closedir($handle); } ?> 

я бы, наверное, сделал что-то вроде этого:

 foreach (glob('../_pics/about/'.'*.{jpg,jpeg,JPG,JPEG}', GLOB_BRACE) as $filename) { echo"$filename"; }