来自file_exists的奇怪行为

时间:2014-01-05 02:19:41

标签: php

我无法检查图像是否存在我尝试过使用file_exists但总是得到错误的响应。

$fjpg = $code . ".jpg";
$imurl = "producers/$dir/images/$fjpg";
if(file_exists($imurl))
{

$cimage = <<<end
    <a href="$imurl"><span style="color:#990000;"><b>$code</b></span>:&nbsp; $desc</a></div></td>
    end;
    }
    $cimage = <<<end
    <span style="color:#990000;"><b>$code</b></span>:&nbsp; $desc</div></td>
    end;

由于我越来越沮丧,heredoc就在那里。我结束了;在实际文件中没有前面的空格。更令人困惑的是,在同一个文件中工作正常如下

<?
if (file_exists("producers/$dir/header.php")) {
    include("producers/$dir/header.php");
}
?>

我尝试过使用带有相同结果的is_file。 我已经交换了两个语句并使用提供的链接来获取文件所以我的假设是$ imurl提供了一个可行的路径,而不是file_exists需要的路径。 我已经使用echo getcwd();作为Jompper建议并得到  / home / caliver / public_html / figures

2 个答案:

答案 0 :(得分:0)

确保使用服务器文档root:

$doc_root = $_SERVER['DOCUMENT_ROOT'];

if (file_exists($doc_root . "/" . $imurl)) {

答案 1 :(得分:0)

确定这个问题的答案是 $ cimage 应该在 if 语句之前定义,或者应该使用 else 。我已经对显而易见的编码错误感到盲目,并且已经确定通常很尴尬的 file_exists 一定是问题所在。感谢你们提出的许多建议。