当我使用以下PHP代码时;
<?php if (file_exists("/foto/Maurice.jpg"))
{
echo "<center><img src='/foto/Maurice.jpg'/></center>";
}
else {
echo "<center><img src='/afbeeldingen/kaars1.png'/></center>";
?>
我的浏览器始终显示kaars1.png
而不是Maurice.jpg
我还尝试了!file_exists
,但是当kaars1.png
不存在时,它没有显示Maurice.jpg
。
有没有简单的方法来解决这个问题?
答案 0 :(得分:4)
file_exists
仅适用于服务器(本地)文件系统上的文件。您需要实际尝试请求URL并查看它是否存在。
您可以使用cURL执行此操作。
$handle = curl_init('https://picathartes.com/foto/Maurice.jpg');
curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($handle, CURLOPT_NOBODY, TRUE);
$response = curl_exec($handle);
// Check for 404 (file not found).
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
if($httpCode == 404) {
echo "<center><img src='https://picathartes.com/afbeeldingen/kaars1.png'/></center>";
}
else{
echo "<center><img src='https://picathartes.com/foto/Maurice.jpg'/></center>";
}
curl_close($handle);
(此问题的代码:https://stackoverflow.com/a/408416)
答案 1 :(得分:3)
这是对第二个问题的回答
正确的解决方案取决于您的实际目录结构以及脚本文件相对于您要查找的实际文件夹和文件的位置,但要开始在/
"/foto/Maurice.jpg"
中找到解决方案说回到根目录并查找名为/foto
因此,如果此文件夹位于DocumentRoot下,请尝试使用
if (file_exists("foto/Maurice.jpg"))