PHP在两个特定目录中搜索图像文件
我需要查找并回显位于两个名为“photoA”或“photoB”的目录中的图像文件名 这是我开始使用的代码,它尝试在这些目录中爬行,查找指定的文件:PHP在两个特定目录中搜索图像文件,php,Php,我需要查找并回显位于两个名为“photoA”或“photoB”的目录中的图像文件名 这是我开始使用的代码,它尝试在这些目录中爬行,查找指定的文件: $file = 'image.jpg'; $dir = array( "http://www.mydomain.com/images/photosA/", "http://www.mydomain.com/images/photosB/" ); foreach( $dir as $d ){ if( file_exi
$file = 'image.jpg';
$dir = array(
"http://www.mydomain.com/images/photosA/",
"http://www.mydomain.com/images/photosB/"
);
foreach( $dir as $d ){
if( file_exists( $d . $file )) {
echo $d . $file;
} else {
echo "File not in either directories.";
}
}
我觉得我离这太远了 由于您是从网站的根目录中运行此脚本,因此不需要定义“”,因为这将导致拒绝访问问题,因为它不是绝对/相对文件路径。相反,如果图像/文件夹与PHP脚本位于同一目录级别,则只需
$dir = array(
"images/photosA/",
"images/photosB/"
);
否则,只需根据需要添加绝对路径即可使其正常工作,但您不能放置。其余部分似乎可以正常工作。您不能在中使用url,您需要在服务器的文件系统中使用绝对或相对路径(相对于runnings脚本),例如:
$dir = array(
"images/photosA/",
"../images/photosB/",
"/home/user/www/images/photosB/"
);
如果不知道确切路径,还可以使用相对于web服务器根目录的路径,并在此之前添加文档根目录:
$dir = array(
$_SERVER['DOCUMENT_ROOT'] . "/images/photosA/",
$_SERVER['DOCUMENT_ROOT'] . "/images/photosB/"
);
(或者只使用一次,使用
file\u exists()
)正如其他人所说,file\u exists()
用于本地文件
如果确实需要通过http查找文件,可以使用:
$file='1!'http://www.domain.com/somefile.jpg';
$file\u headers=@get\u headers($file);
如果($file_headers[0]=='HTTP/1.1 404未找到'){
$exists=false;
}
否则{
$exists=true;
}
注意:如果映像不存在,这取决于服务器返回404。如果服务器改为重定向到索引页或PPORY编码的错误页,您可能会获得错误成功。这有什么问题吗?如果您正在查找一个特定的映像,上述代码应该可以正常工作,而不是url,请使用指向映像的文件系统路径,如../img/pic.jpg