我几年前写了一个php库,一切都很好,直到我在scandir中放了一个子文件夹(foto(,我有以下结构:
- 根/库/
- root/gallery/foto/
- 根/图库/拇指/
- root/图库/tumbs_b/
- root/gallery/gallery.php
文件夹foto
中有所有较大的照片,thumbs
中有所有的微缩模型,thumbs_b
中有所有中等的微缩模型。
代码运行良好,直到我不断评论排序数组:
#array_multisort(array_map('filemtime', $files), SORT_NUMERIC, SORT_DESC, $files);
如果我删除评论,我会得到很多错误,听起来像是与文件时间路径有关的问题。。。
array_multisort(array_map('filemtime', $files), SORT_NUMERIC, SORT_DESC, $files);
这是我在尝试按文件时间对图像进行排序时遇到的错误。
警告:第84行D:\Web\test\www\gallery\gallery.php中的Castellamare_Del_Golfo_16082016_001.jpg的filemtime((:stat失败
警告:filemtime((:第84行D:\Web\test\www\gallery\gallery.php中Cefalu14082017_001.jpg的stat失败
警告:filemtime((:第84行D:\Web\test\www\gallery\gallery.php中Cefalu14082017_002.jpg的stat失败
警告:第84行D:\Web\test\www\gallery\gallery.php中的Charleston_Mondello_4062014_001.jpg的filemtime((:stat失败
警告:第84行D:\Web\test\www\gallery\gallery.php中Charleston_Mondello_15032010_001.jpg的filemtime((:stat失败
警告:filemtime((:第84行D:\Web\test\www\gallery\gallery.php中的Concerto_Politama_Palermo_2507202015_001.jpg的stat失败
警告:filemtime((:第84行D:\Web\test\www\gallery\callery.php中Foro_ItalicoMagnolic_02022014_001.jpg的stat失败
警告:第84行D:\Web\test\www\gallery\gallery.php中Gattino_8092008_001.jpg的filemtime((:stat失败
警告:第84行D:\Web\test\www\gallery\gallery.php中Mondello_Lido_4062014_001.jpg的filemtime((:stat失败
警告:第84行D:\Web\test\www\gallery\gallery.php中Mondello_Asseggiata_10092007_001.jpg的filemtime((:stat失败
警告:filemtime((:第84行D:\Web\test\www\gallery\gallery.php中的Riserva_Nature_Capo_Gallo_082016_001.jpg的stat失败
警告:filemtime((:第84行D:\Web\test\www\gallery\gallery.php中的Riserva_Nature_Capo_Gallo_082016_002.jpg的stat失败
警告:filemtime((:第84行D:\Web\test\www\gallery\gallery.php中Terrasini_Cultura_2312018_001.jpg的stat失败
并且不再显示图像。
如何修复此错误?听起来我像个博士虫。如果我在没有附加路径foto
的情况下放入scandir($src_folder);
,并且如果我将所有图像从root/gallery/foto/
移动到root/gallery/
,则没有错误。问题是,如果scandir正在处理子文件夹,则排序图像不起作用。我有php 8.1.11 64位和apache 2.4.53 64位。
这是一个部分代码,所有完整的代码大约为15kb,这是用于测试目的的短版本。。。
<?php
$pageText = 'Page ';
$pageOfText = ' of ';
$imageText1 = ' image';
$imageText2 = ' images';
$photoText = 'photo';
$comments = 'Comments';
$thumb_width = 120; // width of thumbnails
$thumb_height = 85; // height of thumbnails
$itemsPerPage = 5; // number of images per page
$src_folder = '.'; // current folder images
$src_files = scandir("$src_folder/foto"); // files in current folder
$extensions = array(".jpeg",".jpg",".png",".gif"); // allowed extensions in photo gallery
// display pagination
function print_pagination($pageText, $pageOfText, $numPages, $currentPage)
{
$page = 1;
$page = (isset($_GET['page']) && is_numeric($_GET['page']) && $_GET['page'] > 0)
? htmlspecialchars((int) $_GET['page'], ENT_QUOTES | ENT_HTML401, 'UTF-8')
: 1;
$page = str_replace("