PHP 在 MySQLi while 循环中使用 glob()
PHP use glob() inside MySQLi while loop
在我网站的仪表板上,我使用 while 循环从数据库中检索数据并回显每条记录。在这个 while 循环中,我使用 glob()
显示特定文件夹内的所有图像,这是我的数据库中的一列 table、$record["folder"]
.
这是我使用的代码:
while($record = mysqli_fetch_array($result))
{
$directory = '../send-us-your-photos/media/'.$record['folder'];
chdir($directory);
$images = glob("*.{jpg,JPG,jpeg,JPEG,png,PNG}", GLOB_BRACE);
foreach($images as $image) {
echo '<div class="col-sm-4">
<img src="'.$directory.'/'.$image.'" />
<div>'.$image.'</div>
</div>';
}
}
现在,第一条记录工作正常,显示特定文件夹中的图像。但是接下来的记录都显示相同的 $image
数据,但针对不同的文件夹。
例如:
记录 1:文件夹 1 - 显示 image1.jpg
记录 2:文件夹 2 - 尝试在文件夹 2
中找到相同的 image1.jpg
记录 3:文件夹 3 - 尝试在文件夹 3
中找到相同的 image1.jpg
我需要的:
记录 1:文件夹 1 - 显示文件夹 1 中的图像
记录 2:文件夹 2 - 显示文件夹 2 中的图像
记录 3:文件夹 3 - 显示文件夹 3 中的图像
我应该如何更改我的代码才能在每条记录中显示正确的图像?
我认为这取决于您的 chdir 声明。您将向下移动一个文件夹 ..
,然后向上移动到 send-us-your-photos/media/_FOLDER_
。
所以下次您从 send-us-your-photos/media/_FOLDER_
开始并返回一个文件夹 ..
到 send-us-your-photos/media/
然后它尝试转到 send-us-your-photos/media/send-us-your-photos/media/_FOLDER_
并且显然失败了。
它看起来不像失败,因为你正在输出你自己设置的 $directory
的值。尝试输出 getcwd()
。
简单地说,不要更改目录,直接在 glob 函数中使用目录路径
while($record = mysqli_fetch_array($result))
{
$directory = '../send-us-your-photos/media/'.$record['folder'];
// chdir($directory);
$images = glob($directory . "/*.{jpg,JPG,jpeg,JPEG,png,PNG}", GLOB_BRACE);
foreach($images as $image) {
echo '<div class="col-sm-4">
<img src="'.$directory.'/'.$image.'" />
<div>'.$image.'</div>
</div>';
}
}
在我网站的仪表板上,我使用 while 循环从数据库中检索数据并回显每条记录。在这个 while 循环中,我使用 glob()
显示特定文件夹内的所有图像,这是我的数据库中的一列 table、$record["folder"]
.
这是我使用的代码:
while($record = mysqli_fetch_array($result))
{
$directory = '../send-us-your-photos/media/'.$record['folder'];
chdir($directory);
$images = glob("*.{jpg,JPG,jpeg,JPEG,png,PNG}", GLOB_BRACE);
foreach($images as $image) {
echo '<div class="col-sm-4">
<img src="'.$directory.'/'.$image.'" />
<div>'.$image.'</div>
</div>';
}
}
现在,第一条记录工作正常,显示特定文件夹中的图像。但是接下来的记录都显示相同的 $image
数据,但针对不同的文件夹。
例如:
记录 1:文件夹 1 - 显示 image1.jpg
记录 2:文件夹 2 - 尝试在文件夹 2
中找到相同的 image1.jpg记录 3:文件夹 3 - 尝试在文件夹 3
中找到相同的 image1.jpg我需要的:
记录 1:文件夹 1 - 显示文件夹 1 中的图像
记录 2:文件夹 2 - 显示文件夹 2 中的图像
记录 3:文件夹 3 - 显示文件夹 3 中的图像
我应该如何更改我的代码才能在每条记录中显示正确的图像?
我认为这取决于您的 chdir 声明。您将向下移动一个文件夹 ..
,然后向上移动到 send-us-your-photos/media/_FOLDER_
。
所以下次您从 send-us-your-photos/media/_FOLDER_
开始并返回一个文件夹 ..
到 send-us-your-photos/media/
然后它尝试转到 send-us-your-photos/media/send-us-your-photos/media/_FOLDER_
并且显然失败了。
它看起来不像失败,因为你正在输出你自己设置的 $directory
的值。尝试输出 getcwd()
。
简单地说,不要更改目录,直接在 glob 函数中使用目录路径
while($record = mysqli_fetch_array($result))
{
$directory = '../send-us-your-photos/media/'.$record['folder'];
// chdir($directory);
$images = glob($directory . "/*.{jpg,JPG,jpeg,JPEG,png,PNG}", GLOB_BRACE);
foreach($images as $image) {
echo '<div class="col-sm-4">
<img src="'.$directory.'/'.$image.'" />
<div>'.$image.'</div>
</div>';
}
}