#25381 [Bgs]: include_once failed to recognize identical file
| From: | ulysses at mail dot fitan dot com dot tw | Date: | Tue, 09 Sep 2003 02:00:39 +0000 |
| Subject: | #25381 [Bgs]: include_once failed to recognize identical file | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-47292@lists.php.net to get a copy of this message | ||
ID: 25381
User updated by: ulysses at mail dot fitan dot com dot tw
Reported By: ulysses at mail dot fitan dot com dot tw
Status: Bogus
Bug Type: Scripting Engine problem
Operating System: Windows 2K, IIS5
PHP Version: 4.3.3
New Comment:
> RTFM: http://www.php.net/include_once
Do you mean this ?
> Note: Be aware, that the behaviour of include_once()
> and require_once() may not be what you expect on a
> non case sensitive operating system (such as Windows).
How convenient!
Then please tell me, WHAT CAN I EXPECT ?
My code runs well on 4.30, and crashed when my client
upgrade their system to 4.33, can I tell me client to RTFM
?
I just demand for a notice message, or do you want Windows
developers to build a included_file_array by their self in
all code ?
No wonder why there are so few enterprises who would adopt
PHP for critical task. Cause it can not be EXPECTED!
Previous Comments:
------------------------------------------------------------------------
[2003-09-03 10:48:11] sniper@php.net
RTFM: http://www.php.net/include_once
------------------------------------------------------------------------
[2003-09-03 10:00:15] ulysses at mail dot fitan dot com dot tw
Description:
------------
In PHP 4.3.3 include_once() is case-sensitive. This will
cause some problem on case-insensitive filesystems, such as
Windows. Please see the reproduce code.
Of course I will never use this teenager-hacker-style
strings for actual coding, but it means trouble when mixed
using relative and absolute path within codes. I spent
hours debugging, only to found it's the "I"netpub directory
(IIS default setting) name problem.
Yes, this problem can be work-around. But if include_once()
feels that 'C:/Inetpub/wwwroot/b.php' and 'c:/inetpub/
wwwroot/b.php' are different, please do not let me include
it, or please give me some warning.
This had never happened in PHP 4.3.2 or previous version.
Reproduce code:
---------------
I've got two files: a.php & b.php, which are put in the same directory.
The actual absolute to b.php is 'C:/Inetpub/wwwroot/b.php';
a.php:
<?
$mydir = 'c:/inEtpUB/wwwRoOT';
echo "<P>THIS IS A.PHP";
include_once("b.php");
include_once("$mydir/b.php");
?>
b.php
<?
echo "<P>THIS IS B.PHP";
?>
Expected result:
----------------
THIS IS A.PHP
THIS IS B.PHP
Actual result:
--------------
THIS IS A.PHP
THIS IS B.PHP
THIS IS B.PHP
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=25381&edit=1