Я знаю, что это старый вопрос, но ниже мое решение.
Что необходимо? Сценарий и папка с изображениями. Скрипт и папка с изображениями могут быть размещены в любом месте вашего сервера. Но папка с изображениями должна называться «изображения» (множественное слово) и должна находиться в той же папке, что и скрипт на сервере.
Я предпочитаю использовать DirectoryIterator
через glob()
, потому что glob($dir."\*.jpg")
возвращает абсолютный путь. То, что вам нужно для вывода изображения, - это URL-адрес на сервере. Поэтому, если вы хотите использовать функцию glob()
, вам нужно будет преобразовать абсолютный путь в URL.
function get_image_array($path = NULL, $protocol = "http://", $image_folder = "images") {
$dir = new DirectoryIterator($path);
$realpath = array();
foreach ($dir as $fileinfo) {
if ($fileinfo->isDot()) {
continue;
}
$folder_name = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // gets the name of folder, in this case: "images"
$file_name = $fileinfo->getFilename(); // gets the name of the image
$realpath[] = $protocol . $folder_name . $image_folder . "/" . $file_name; // put foldername and filename together
}
return $realpath;
}
$path = dirname(__FILE__) . "\images"; // path to image folder
$image_array_path = get_image_array($path); // invoke the get_image_array function
// Simple way to output images, for the sake of example
foreach ($image_array_path as $image_path) {
echo "<img src=\"{$image_path}\"></img><br>";
}
Имейте в виду, что вам необходимо использовать относительные пути или внутренние пути ... '$ dir = 'www.example.com/anything'' не будет работать. – Zarel
не забудьте указать urlencode и htmlentities – hanshenrik