Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP在两个特定目录中搜索图像文件_Php - Fatal编程技术网

PHP在两个特定目录中搜索图像文件

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

我需要查找并回显位于两个名为“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_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