我想在服务器上检查图像,我还有另一个子域来保存图像,但是它们是通过HTTPS提供的
它只能在本地运行,而不能通过HTTPS远程运行,因为它总是打印“ exists directory”。
$foto = "https://subdomain.example.com/images/" . $var . "/" . $var2. "/flayer";
if (file_exists($foto . ".jpg")) {
echo "HELLO WORL";
}
if (glob($foto . ".*")) {
if (file_exists($foto . ".jpg")) {
$ruta = "https://subdomain.example.com/images/". $var . "/" . $var2 . "/flayer.jpg";
}else{
echo "no exists";
}
}else{
echo "no exists on directory";
}
答案 0 :(得分:0)
body
是目录服务。如果它是您域的子目录,则您的文件系统应存储在同一服务器上。在索引文件夹中,定义或存储此路径的变量-将其视为环境变量。
glob()
您现在可以在子域中循环浏览目录。这将是一个名为您的子域的文件夹。
define('PUBLIC_ROOT', dirname(__FILE__));
如果出于某种原因,您的子域托管在其他地方-奇怪-或它是一个外部站点,并且您需要使用HTTP。发送一个foreach(glob(PUBLIC_ROOT . '/subdomain/images/*.jpg', GLOB_BRACE) as $image)
// Do something with each JPEG image
请求。您可以在标题中指定任何人。
cURL
您不能使用跨域的目录服务(DS协议)(通过HTTP协议)。
移动点::如果您需要该服务器上保存的所有图像的集合,请考虑构建一个API,该API返回所有文件路径或动态URI的JSON编码数组。您的子域,然后从另一个域请求它。
答案 1 :(得分:0)
我有2个选项进行测试
function remote_file_exists($url, $ext) {
$ch = curl_init($url . $ext);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode == 200) {
return true;
}
}
AND
function remote($url, $ext) {
if (@exif_imagetype($url . $ext)) {
return true;
} else {
return false;
}
}
有效但是太慢了,有什么方法可以使它更快吗?