PHP file_exists 不起作用。好像真假颠倒
PHP file_exists does not work. It seems to be reversing true and false
在处理我的照片库时,我决定如果应该显示的图像没有显示,最好有一个备用文件。我看过这个网站,可能还有其他网站。他们都说要用:
$VariableName = "photography/small/2014-09-21-red-1.png";
if (file_exists ($VariableName)) {echo "Yes!!!";}
else {echo "Nooo!!!";}
或
if (file_exists ("photography/small/2014-09-21-red-1.png")) {echo "Yes!!!";}
else {echo "Nooo!!!";}
出于某种原因,这对我不起作用。它确实有效,但仅当 file_exists
设置为 !file_exists
时,即:"if this file does not exist, display the image that exists (the image I want, not it's replacement)"。换一种说法:
这是说如果 apple
存在,显示 "orange";如果 apple
不存在,则显示 apple
.
我什至将生成的图像 link 放在搜索栏中(使用 !file_exists
时),按回车键后,它会将我带到图像。我已经确保图像设置为 0777
以防干扰,但它似乎没有效果。所有 $DataRows
变量都连接到数据库,我已经三次检查 photography/small
中的文件名是否与数据库 table.
中的文件名匹配
为什么会这样?
$URLPath = "http://localhost/~matthew/";
if (file_exists ($URLPath . "photography/small/" . $DataRows["DatePublished"] . "-" . $DataRows["FileName"] . "." . $DataRows["ImageExtension"])) {
echo '<img src="' . $URLPath . "photography/small/" . $DataRows["DatePublished"] . "-" . $DataRows["FileName"] . "." . $DataRows["ImageExtension"] . '" alt="' . $DataRows["PhotoName"] . '">' . "\n";
}
else {
echo '<img src="' . $URLPath . 'img/no-image.png" alt="Image Not Here">' . "\n";
}
非常感谢您的帮助。
尝试使用 clearstatcache() 并仔细检查文件名和路径。
您似乎正在检查文件,但将 URL 传递给函数。它可能返回 false,因为 URL 不是您服务器上的有效路径。我建议使用文件的实际路径,或者如果您必须使用 URL,请查看此 post:How to check if a file exists from a url
如果您将 $URLPath 从
更改为
$URLPath = "http://localhost/~matthew/";
到
$URLPath = $_SERVER['DOCUMENT_ROOT'] . "/~matthew/";
if (file_exists ($VariableName or "path-to-image")) {
这是胡言乱语。只要 "path-to-image" 不为空,操作数就会评估为 (bool) true。
应该是:
if (file_exists ($VariableName)) {
看起来你应该使用
If(is_readable($variable)) {
但是看看你后来的代码,你没有使用你最初引用的结构。
file_exists()
在许多不同的环境中都按照我所描述的那样工作。
在处理我的照片库时,我决定如果应该显示的图像没有显示,最好有一个备用文件。我看过这个网站,可能还有其他网站。他们都说要用:
$VariableName = "photography/small/2014-09-21-red-1.png";
if (file_exists ($VariableName)) {echo "Yes!!!";}
else {echo "Nooo!!!";}
或
if (file_exists ("photography/small/2014-09-21-red-1.png")) {echo "Yes!!!";}
else {echo "Nooo!!!";}
出于某种原因,这对我不起作用。它确实有效,但仅当 file_exists
设置为 !file_exists
时,即:"if this file does not exist, display the image that exists (the image I want, not it's replacement)"。换一种说法:
这是说如果 apple
存在,显示 "orange";如果 apple
不存在,则显示 apple
.
我什至将生成的图像 link 放在搜索栏中(使用 !file_exists
时),按回车键后,它会将我带到图像。我已经确保图像设置为 0777
以防干扰,但它似乎没有效果。所有 $DataRows
变量都连接到数据库,我已经三次检查 photography/small
中的文件名是否与数据库 table.
为什么会这样?
$URLPath = "http://localhost/~matthew/";
if (file_exists ($URLPath . "photography/small/" . $DataRows["DatePublished"] . "-" . $DataRows["FileName"] . "." . $DataRows["ImageExtension"])) {
echo '<img src="' . $URLPath . "photography/small/" . $DataRows["DatePublished"] . "-" . $DataRows["FileName"] . "." . $DataRows["ImageExtension"] . '" alt="' . $DataRows["PhotoName"] . '">' . "\n";
}
else {
echo '<img src="' . $URLPath . 'img/no-image.png" alt="Image Not Here">' . "\n";
}
非常感谢您的帮助。
尝试使用 clearstatcache() 并仔细检查文件名和路径。
您似乎正在检查文件,但将 URL 传递给函数。它可能返回 false,因为 URL 不是您服务器上的有效路径。我建议使用文件的实际路径,或者如果您必须使用 URL,请查看此 post:How to check if a file exists from a url
如果您将 $URLPath 从
更改为$URLPath = "http://localhost/~matthew/";
到
$URLPath = $_SERVER['DOCUMENT_ROOT'] . "/~matthew/";
if (file_exists ($VariableName or "path-to-image")) {
这是胡言乱语。只要 "path-to-image" 不为空,操作数就会评估为 (bool) true。
应该是:
if (file_exists ($VariableName)) {
看起来你应该使用
If(is_readable($variable)) {
但是看看你后来的代码,你没有使用你最初引用的结构。
file_exists()
在许多不同的环境中都按照我所描述的那样工作。