Невозможно успешно пройти через imagss в каталоге с циклом PHP foreach - PullRequest
0 голосов
/ 18 октября 2018

Вот цикл:

<?php
// I added this just to see if HTML_PATH_UPLOADS_PAGES points to the right directory
echo "<img style=\"width:100%;height:100%;\" src=\"" . HTML_PATH_UPLOADS_PAGES . "c60fca4c682803c969f2410084878155/1.jpg\">\n";
// Loop through all the image files in the right sidebar.
foreach (glob(HTML_PATH_UPLOADS_PAGES . "c60fca4c682803c969f2410084878155/{*.[gG][iI][fF],*.[jJ][pP][gG],*.[jJ][pP][eE][gG],*.[pP][nN][gG]}", GLOB_BRACE) as $image) {

    // Display the image in the right sidebar.
    echo "<div class=\"col-md-6 col-lg-4 item zoom-on-hover\">\n";
    echo "<a class=\"lightbox\" href=\"" . HTML_PATH_UPLOADS_PAGES . "c60fca4c682803c969f2410084878155/" . basename($image) . "\">\n";
    echo "<img class=\"img-fluid image\" src=\"" . HTML_PATH_UPLOADS_PAGES . "c60fca4c682803c969f2410084878155/" . basename($image) . "\" >\n";
    echo "</a>\n";
    echo "</div>\n";
}

?> 

Вот расположение файла pictures.php, в котором находится цикл: location of the pictures.php file where I placed the foreach loop

Вот каталог, в котором находятся изображения: images I want to loop through

Редактировать:

Вот определение HTML_PATH_UPLOADS_PAGES, как определено в /bludit/bl-kernel/boot/init.php:

$base = '';
if (!empty($_SERVER['DOCUMENT_ROOT']) && !empty($_SERVER['SCRIPT_NAME']) && empty($base)) {
    $base = str_replace($_SERVER['DOCUMENT_ROOT'], '', $_SERVER['SCRIPT_NAME']);
    $base = dirname($base);
} elseif (empty($base)) {
    $base = empty( $_SERVER['SCRIPT_NAME'] ) ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
    $base = dirname($base);
}
if (strpos($_SERVER['REQUEST_URI'], $base)!==0) {
    $base = '/';
} elseif ($base!=DS) {
    $base = trim($base, '/');
    $base = '/'.$base.'/';
} else {
    // Workaround for Windows Web Servers
    $base = '/';
} 

define('HTML_PATH_ROOT', $base);
define('HTML_PATH_UPLOADS_PAGES',        HTML_PATH_ROOT.'bl-content/uploads/pages/');

1 Ответ

0 голосов
/ 19 октября 2018

Попробуйте добавить эту константу, чтобы получить путь к файловой системе вашей папки:

define('FILE_PATH_UPLOADS_PAGES', 
  rtrim($_SERVER['DOCUMENT_ROOT'], '/\\') . '/bludit/bl-content/uploads/pages/');

Затем используйте ее с glob:

glob(FILE_PATH_UPLOADS_PAGES . 'c60fca4c682803c969f2410084878155 ...');

Альтернатива с относительным путем:

define('FILE_PATH_UPLOADS_PAGES', 
  __DIR__ . '../../bl-content/uploads/pages/');

Однако, если вы вообще не хотите создавать еще одну константу, вы можете попробовать:

glob(rtrim($_SERVER['DOCUMENT_ROOT'], '/\\') 
  . '/' . HTML_PATH_UPLOADS_PAGES 
  .  'c60fca4c682803c969f2410084878155...');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...