无法在具有PHP foreach循环的目录中成功循环imagss
以下是循环:无法在具有PHP foreach循环的目录中成功循环imagss,php,loops,foreach,Php,Loops,Foreach,以下是循环: <?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
<?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";
}
?>
尝试添加此常量以获取文件夹的文件系统路径:
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...');
HTML\u PATH\u UPLOADS\u PAGES
的价值是什么glob
需要一个文件路径(或其模式),而图像的src
属性需要一个URL/URI,这是不同的。我添加了HTML\u path\u UPLOADS\u PAGES
的定义。这对杰托有帮助吗?嗯,glob
需要一个文件路径这一事实解释了为什么会显示图像,但foreach循环不起作用。要给glob一个文件路径而不是URL/URI,我需要做些什么更改?如果这仍然不起作用,请var\u dump($\u SERVER['DOCUMENT\u ROOT'))
并告诉我它的值。基本上,您必须从那里构建一个路径(虽然您也可以使用当前脚本中的相对路径,但在您的情况下这有点尴尬,imho)。我将常量FILE\u path\u UPLOADS\u PAGES
更改为:define($\u SERVER['DOCUMENT\u ROOT'],'/\\')。/bludit/bl content/UPLOADS/PAGES/)代码>现在它可以工作了:D我有没有办法使用常量HTML_PATH_UPLOADS_PAGES
,它的值为“/bludit/bl content/UPLOADS/PAGES/”?我想到的是这样的:`glob(“../../../../.”HTML_PATH_UPLOADS_PAGES。“c60fca4c682803c969f2410084878155…”)@约翰尼看到我编辑过的答案了。再说一次,我可能有一些文件夹关闭,但通过var_转储不同的元素,您应该可以找到正确的公式:)非常感谢@Jeto!介意我给你买一杯B,e,e,r,欢乐饮料吗??
glob(rtrim($_SERVER['DOCUMENT_ROOT'], '/\\')
. '/' . HTML_PATH_UPLOADS_PAGES
. 'c60fca4c682803c969f2410084878155...');