PHP file_exists else

时间:2016-01-22 23:15:34

标签: php image

当我使用以下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。 有没有简单的方法来解决这个问题?

2 个答案:

答案 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"))