Bug #16830 Updated: file_exists("") returns TRUE instead of FALSE
| From: | sniper@php.net | Date: | Sat, 27 Apr 2002 14:41:44 +0000 |
| Subject: | Bug #16830 Updated: file_exists("") returns TRUE instead of FALSE | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-6230@lists.php.net to get a copy of this message | ||
ID: 16830
Updated by: sniper@php.net
Reported By: soeren.fleischer@gmx.net
-Status: Open
+Status: Analyzed
Bug Type: Filesystem function related
-Operating System: Windows 2000 SP2
+Operating System: ANY
-PHP Version: 4.2.0
+PHP Version: 4.3.0-dev
New Comment:
Duh. You're right, it's a bug.
<?php
$filename="";
$bb = is_file($filename);
var_dump($bb);
$aa = file_exists($filename);
var_dump($aa);
?>
Outputs:
int(0)
bool(true)
--Jani
Previous Comments:
------------------------------------------------------------------------
[2002-04-27 00:27:58] soeren.fleischer@gmx.net
c:\winnt\system32\php4ts.dll matches the php4ts.dll from the php 4.2.0
package. All other PHP files are in php's own directory. When I install
a new version of PHP, I always delete the whole old PHP directory and
create a new one to prevent keeping rests from old versions. I also
always use the new php.ini-dist and modify it again instead of keeping
the old php.ini.
Additionally, in the last PHP version I had installed (4.1.2),
file_exists() DID work! It just stopped working with PHP 4.2.0, so I
doubt that error could be from forgetting to overwrite old DLLs with
new ones.
What does the script I posted before say for _you_, Jani?
------------------------------------------------------------------------
[2002-04-26 22:11:06] sniper@php.net
Just in case..are you absolutely sure you have updated
all dlls related to PHP in your system? (I assume you had
some older PHP there before)
e.g. php4ts.dll is quite important to be new. Try searching
your filesystem for it. You might have many of them there.
--Jani
------------------------------------------------------------------------
[2002-04-26 12:47:20] soeren.fleischer@gmx.net
Sander, please tell me the Bug ID for it.
I did search the Bugs DB for open bugs with "file_exists".
The bug I'm talking about was reported as bug for PHP 4.1.0 ( Bug ID:
15218 ) and it has actually been fixed in 4.1.2, but now it appeared
again in PHP 4.2.0 !!
So this is no duplicate bugreport, I think.
------------------------------------------------------------------------
[2002-04-26 11:59:39] sander@php.net
Plese, SEARCH the bugdb. There is a report about this. (sorry Jani ;)
------------------------------------------------------------------------
[2002-04-25 16:39:58] soeren.fleischer@gmx.net
file_exists("") returns TRUE instead of FALSE
As per request, here are more details...
This:
<?
$filename="";
if (is_file($filename))
{
print "is_file sais, the file $filename <b>does exist</b>.<br>";
}
else
{
print "is_file sais, the file $filename <b>did not exist</b>.<br>";
}
if (file_exists($filename))
{
print "file_exists sais, the file $filename <b>does exist</b>.<br>";
}
else
{
print "file_exists sais, the file $filename <b>did not
exist</b>.<br>";
}
?>
will return:
is_file sais, the file did not exist.
file_exists sais, the file does exist.
Again, in other words:
If you give file_exists() an empty string as argument ( file_exists("")
), it will return TRUE (saying the file existed, but it does not,
because "" is no file.)
is_file() correctly returns FALSE if you give it an empty string as
argument and so should file_exists do, as it did in PHP 4.1.2
Further information:
I used to check my upload-scripts for uploaded files using
$file=$_FILES['datei']['tmp_name'];
if (file_exists($file)) { savefile($file); }
but I cannot use this anymore because when a user does not upload a
file, $filename becomes an empty string and file_exists returns TRUE,
so my function savefile($file) wants to save a non-uploaded file.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/16830
--
Edit this bug report at http://bugs.php.net/?id=16830&edit=1