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: [url]http://www.php.net/include_once[/url]
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] [email]sniper@php.net[/email]

RTFM: [url]http://www.php.net/include_once[/url]


------------------------------------------------------------------------

[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 [url]http://bugs.php.net/?id=25381&edit=1[/url]