PHP文件不存在

PHP文件不存在,php,image,file-exists,Php,Image,File Exists,这应该很简单,但不起作用 $photo = "../members/".$vid.".jpg"; if (file_exists ($photo)) echo "<img id='memberpic' src = '$photo'/>"; $photo=“../members/”$vid..jpg”; 如果(文件_存在($photo)) 回声“; 在这种情况下,图像从不显示 但是,如果我省略if语句 echo "<img id='memberpic

这应该很简单,但不起作用

  $photo = "../members/".$vid.".jpg";

  if (file_exists ($photo))
       echo "<img id='memberpic' src = '$photo'/>";
$photo=“../members/”$vid..jpg”;
如果(文件_存在($photo))
回声“;
在这种情况下,图像从不显示

但是,如果我省略if语句

 echo "<img id='memberpic' src = '$photo'/>";
echo”“;
当文件存在时,图像会正确显示,但当文件不存在时,图像会显示为空帧。我想消除那个空框


我缺少什么?

您正在使用文件\u exists()的相对路径。请尝试改用完整的服务器路径

e、 g

$photo=“/var/www/html/members/”$vid..jpg”


但是,显然要替换为服务器的完整路径:)

尽可能多地使用绝对路径。相对路径是PHP计算它们(从性能角度)的难题。

如果你不想使用绝对路径,你可以使用相对路径,如下所示

$_SERVER['DOCUMENT_ROOT'] = '<root_dir_of_your_project>';  
file_exists($_SERVER['DOCUMENT_ROOT'].'/path/to/file.php');  
$\u服务器['DOCUMENT\u ROOT']='';
文件_存在($_服务器['DOCUMENT_ROOT']./path/to/file.php');

在处理文件和目录路径时,您必须记住一些事情。基本上,访问绝对文件(Web服务器上的完整路径)比访问相对文件(执行php脚本的目录中的路径)要好。这将帮助您检查文件是否存在。您可以使用PHP魔常数DIR(PHP版本>=5.3)或dirname(文件)获取脚本的active directory

您必须跟踪的另一件事是Web服务器的文档根。您的(在您的情况下)图像文件的地址如下: 文档根:/var/www/example.com/img/photo.png 网址:


尽管可以将“父目录”用于。。我不建议使用,因为这很难。

使用类似于
\uuuu DIR\uuuu
$\u SERVER['DOCUMENT\u ROOT']
的方法将相对路径转换为绝对路径。。。。或者,您可以通过
getcwd()
获取当前工作目录,谢谢大家,但这里似乎还有其他原因。我已经切换到绝对路径,现在File_exists正在查找该文件,但img标记没有。下面的解决方案可以工作,但看起来很复杂:$photo=“$root/members/”$vid。“.jpg”$photo1=“../members/”$vid..jpg”;如果(文件_存在($photo))echo“”;所以,我相信HTML需要相对路径,而PHP更喜欢绝对路径。这是正确的吗?啊,是的,对不起!您需要重新定义图像的变量。您希望对照完整路径进行检查,但仅使用相对路径链接到图像。这有意义吗?您的网页不会看到使用完整路径的图像,因为这与web服务器的呈现URL不同。因此,需要检查完整的文件系统路径以及映像的相对公共URL。