Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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_Image - Fatal编程技术网

PHP文件在其他地方存在

PHP文件在其他地方存在,php,image,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>"; ?> 我的浏览器总是显示kaar

当我使用下面的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
我也试过
!文件_存在
但当
Maurice.jpg
不存在时,它不会显示
kaars1.png

是否有一种简单的方法来解决此问题?

文件\u存在
仅适用于服务器(本地)文件系统上的文件。您需要实际尝试请求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);
$handle=curl\u init('https://picathartes.com/foto/Maurice.jpg');
curl_setopt($handle,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($handle,CURLOPT_NOBODY,TRUE);
$response=curl\u exec($handle);
//检查404(未找到文件)。
$httpCode=curl\u getinfo($handle,CURLINFO\u HTTP\u CODE);
如果($httpCode==404){
回声“;
}   
否则{
回声“;
} 
卷曲关闭($handle);
(此问题的代码:)

这是对第二个问题的回答

正确的解决方案取决于您的实际目录结构以及脚本文件相对于您要查找的实际文件夹和文件的位置,但要开始查找解决方案,请在
“/foto/Maurice.jpg”中找到
/
,例如返回根目录并查找名为
/foto

因此,如果此文件夹位于DocumentRoot下,请尝试使用

if (file_exists("foto/Maurice.jpg"))

file\u exists
仅适用于服务器(本地)文件系统上的文件。在
file\u exists
中提供完整url(图像所在的完整路径)可能存在重复项,仅用于询问,你确定该文件确实存在并且可以被php访问吗?你测试的这个文件是否位于你的服务器上?最好不要包含响应的实际主体(curl_setopt($handle,CURLOPT_NOBODY,1)@georaldc:可能。我主要是“借用”的来自另一个问题的代码。只获取标题而不获取正文似乎是一个好主意。这是一个不错的答案,但是什么让你认为正在查找的文件位于另一台服务器上?好了,你开始@riggsfully操作更改了问题: