PHP文件在其他地方存在
当我使用下面的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 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操作更改了问题: