以特定方式显示文件夹中的图片 - PHP
Display pictures from a folder in the specific way - PHP
我正在尝试在 php 中创建动态图片库,其中图片在页面上按特定顺序排列,但我找不到 php 的函数或代码片段。
条件:
- 图库必须是动态的,图片将通过 php 来自文件夹,因为当我 add/upload 文件夹中的更多图片时,它们必须显示在页面上,而无需手动添加html 中的标签。(这部分很简单,问题是条件 2)。
- 第一行将有 5 张图片,第二行 - 4 张图片(对于特定效果很重要)。
我的代码:
$files = glob("layout/gallery/*.jpg");
rsort($files, SORT_NATURAL);
for ($i=0; $i < count($files); $i++) {
for( ; $i<5; $i++){
$one = $files[$i];
echo '<img src="'.$one.'">' . '<br><br>';
}
echo '<br>';
for( ; $i<9; $i++){
$two = $files[$i];
echo '<img src="'.$two.'">' . '<br><br>';
}
}
代码运行良好,但明显只显示9张图片。我无法让它动态地先显示 5 张图片,然后再显示 4 张图片,然后一直这样循环直到显示该文件夹中的所有图片。
您可以利用 array_splice 函数,它每次从数组中删除元素 returns 这些元素 :
$files = glob("layout/gallery/*.jpg");
rsort($files, SORT_NATURAL);
// split the files in rows
$rows = [];
while(count($files) != 0) {
// even rows have 5 elements, odd ones have 4
$num_files_to_splice = count($rows) % 2 == 0 ? 5 : 4;
$rows[] = array_splice($files, 0, $num_files_to_splice);
}
// display them accordingly
foreach($rows as $row) {
foreach($row as $file) {
echo '<img src="'.$file.'">';
}
echo '<br><br>';
}
我正在尝试在 php 中创建动态图片库,其中图片在页面上按特定顺序排列,但我找不到 php 的函数或代码片段。
条件:
- 图库必须是动态的,图片将通过 php 来自文件夹,因为当我 add/upload 文件夹中的更多图片时,它们必须显示在页面上,而无需手动添加html 中的标签。(这部分很简单,问题是条件 2)。
- 第一行将有 5 张图片,第二行 - 4 张图片(对于特定效果很重要)。
我的代码:
$files = glob("layout/gallery/*.jpg");
rsort($files, SORT_NATURAL);
for ($i=0; $i < count($files); $i++) {
for( ; $i<5; $i++){
$one = $files[$i];
echo '<img src="'.$one.'">' . '<br><br>';
}
echo '<br>';
for( ; $i<9; $i++){
$two = $files[$i];
echo '<img src="'.$two.'">' . '<br><br>';
}
}
代码运行良好,但明显只显示9张图片。我无法让它动态地先显示 5 张图片,然后再显示 4 张图片,然后一直这样循环直到显示该文件夹中的所有图片。
您可以利用 array_splice 函数,它每次从数组中删除元素 returns 这些元素 :
$files = glob("layout/gallery/*.jpg");
rsort($files, SORT_NATURAL);
// split the files in rows
$rows = [];
while(count($files) != 0) {
// even rows have 5 elements, odd ones have 4
$num_files_to_splice = count($rows) % 2 == 0 ? 5 : 4;
$rows[] = array_splice($files, 0, $num_files_to_splice);
}
// display them accordingly
foreach($rows as $row) {
foreach($row as $file) {
echo '<img src="'.$file.'">';
}
echo '<br><br>';
}