|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #26210 CON, NUL, PRN... special files : is_file return true
Submitted: 2003-11-12 00:18 UTC Modified: 2003-11-12 04:55 UTC
Avg. Score:5.0 ± 0.0
Reproduced:0 of 0 (0.0%)
From: iubito at asp-php dot net Assigned:
Status: Not a bug Package: *Directory/Filesystem functions
PHP Version: 4.3.3 OS: Windows (all)
Private report: No CVE-ID: None
 [2003-11-12 00:18 UTC] iubito at asp-php dot net

As we often forget that Windows is based on DOS... we forget that in DOS it exists special file (CON, NUL, PRN, LPT1, LPT2, AUX, COM1, COM2, COM3, COM4). Under DOS, echo foobar > nul
nul is considered as a file.

Now in Windows Explorer, if you try to create a file called aux.<the_extension_you_want> or nul.bmp or or lpt2.php... Windows return an error, something like "Impossible to create nul.bmp, a file with this name already exists..."
That shows us that windows consider aux.* nul.* con.* as files.

Now here I want to go...
All functions like is_directory, is_file, file_exists... should return false.
Since today, it ask windows "does the file nul.bmp exist ?" and Windows answer "yes!".
But this file is not openable, writeable, readable.

Reproduce code:
$bugfile = 'c:/nul.gif'; // or aux.* or con.*....
if (is_file($bugfile))
  echo $bugfile.' exists! <img src="'.$bugfile.'" />';
  echo $bugfile.' doesn\'t exist!';

// Now is a more problematic case I've seen in my app
$inc = 'aux.php'; // the name is generated automatically...
if (is_file('mydirectory/'.$inc)) {


Expected result:
c:/nul.gif doesn't exist!

Actual result:
c:/nul.gif exists <img src="c:/nul.gif" /> <-- that's a red cross!

Warning: main(PHPmyBrowserCustom/addon-file/AUX.php): failed to open stream: No such file or directory in F:\www\pays\flags\PHPmyBrowser\main.php on line 587

Fatal error: main(): Failed opening required 'PHPmyBrowserCustom/addon-file/AUX.php' (include_path='.;c:\php4\pear') in F:\www\pays\flags\PHPmyBrowser\main.php on line 587


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2003-11-12 04:12 UTC]
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at and the instructions on how to report
a bug at

 [2003-11-12 04:55 UTC] iubito at asp-php dot net
Sorry but the problem is serious, and I've found in the doc (just now, didn't found it before :p) filetype...

...BUT that doesn't solve the problem. If only I could test if my files are "file" type!

with filetype($a_file_name)
c:/ -> dir
brass.mus -> file
file_that_not_exist.foobar -> 
aux.* -> file
nul.* -> file
com1.* -> file

Is filetype() function correct ???
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Jun 16 15:01:28 2024 UTC