|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2003-11-12 04:12 UTC] edink@php.net
[2003-11-12 04:55 UTC] iubito at asp-php dot net
|
|||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Nov 19 09:00:01 2025 UTC |
Description: ------------ Hello 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 prn.zip 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.'" />'; else 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)) { include('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