# BUG #18630

- Thread: https://externals.io/message/5066
- Original archive: https://news-web.php.net/php.internals/5066
- Started by Pete Dishman on 2003-10-29T15:36:53+00:00
- Messages: 4
- Reply by email to internals@lists.php.net
- More for agents: search with https://externals.io/search.md?q={query} · JSON API at https://externals.io/api · documentation at https://externals.io/llms.txt

---

## #5066 — Pete Dishman — 2003-10-29T15:36:53+00:00

URL: https://externals.io/message/5066#5066

Hi,

The fact that require_once()/include_once() are case-sensitive on Windows
was reported in bug 18630 http://bugs.php.net/bug.php?id=18630 , however the
bug was then just closed as a documentation problem and nothing was changed,
which is why I'm sending this here rather than adding to the bug report.

Anyway, on systems with case-insensitive file systems this problem
effectively makes require_once() useless and means you have to rely on code
blocks such as:
if (defined("ASRD_INCLUDED"))
 return;
define("ASRD_INCLUDED", TRUE);

at the top of every single include file, this is definitely ugly and would
be much better replaced by require_once().
Also using this to prevent multiple inclusions still means that the file
will be parsed multiple times which is an unnecessary performance drain.

From what I can tell of the code in zend_execute.c, fixing this bug is just
a matter of taking a copy of the filename and making it lowercase on windows
systems before adding it to the EG(included_files) hashtable.

Is there any chance this could be fixed before 4.3.4 is released, as it is
definitely a bug and not a documentation problem.


Cheers,
Pete Dishman

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

Peter Dishman

Software Engineer

Email: peterd@telephonetics.co.uk

Address: Telephonetics, Hamilton House, 111 Marlowes, Hemel Hempstead,
Herts. HP1 1BB
+44 (0)1442 242 242 Telephonetics - Making Sound Business Sense -
www.telephonetics.co.uk

Telephonetics ContactPortal (R) available now :
www.telephonetics.co.uk/products/product_contactportal.html
Intelligent call routing by spoken voice - just say the name and it dials
for you. Call me on 01442 242 242 to hear it in action.

Arrange flower delivery via local florists using the Telephonetics / Web
Florist service on 08450 111 111 www.webflorists.co.uk/find_a_florist.htm
Prompt service anywhere in the UK.

The disclaimer available at www.telephonetics.co.uk/edisc.html or by sending
email
to <mailto:email-disclaimer@telephonetics.co.uk

---

## #5067 — Derick Rethans — 2003-10-29T15:46:29+00:00

URL: https://externals.io/message/5066#5067 · In reply to: #5066

> Hi,
> 
> The fact that require_once()/include_once() are case-sensitive on Windows
> was reported in bug 18630 http://bugs.php.net/bug.php?id=18630 , however the
> bug was then just closed as a documentation problem and nothing was changed,
> which is why I'm sending this here rather than adding to the bug report.
> 
> Anyway, on systems with case-insensitive file systems this problem
> effectively makes require_once() useless and means you have to rely on code
> blocks such as:
> if (defined("ASRD_INCLUDED"))
>  return;
> define("ASRD_INCLUDED", TRUE);
> 
> at the top of every single include file, this is definitely ugly and would
> be much better replaced by require_once().
> Also using this to prevent multiple inclusions still means that the file
> will be parsed multiple times which is an unnecessary performance drain.
> 
> > […]
> a matter of taking a copy of the filename and making it lowercase on windows
> systems before adding it to the EG(included_files) hashtable.
> 
> Is there any chance this could be fixed before 4.3.4 is released, as it is
> definitely a bug and not a documentation problem.

How is this a BUG? It's just a feature on windows where you have 
case-insensitive filenames. I fyou want to handle that, just use one 
style in your code (ie, always lower case).

About your sig:

"I wonder if I could request that you ditch the ridiculous ten-line
.sig?  If not completely, then at least from this list? It's the ASCII
equivalent of walking out of a public restroom with toilet paper hanging
out of the back of your pants. The longer it is, the sillier you look."

Derick

-- 
"Interpreting what the GPL actually means is a job best left to those
                    that read the future by examining animal entrails."
-------------------------------------------------------------------------
 Derick Rethans                                 http://derickrethans.nl/ 
 International PHP Magazine                          http://php-mag.net/

---

## #5081 — Andi Gutmans — 2003-10-29T21:12:46+00:00

URL: https://externals.io/message/5066#5081 · In reply to: #5066

Hey,

I might have fixed this. Can you please check the latest CVS and let me 
know if it works for you?

Thanks,

Andi

At 03:36 PM 10/29/2003 +0000, Pete Dishman wrote:
>Hi,
>
>The fact that require_once()/include_once() are case-sensitive on Windows
>was reported in bug 18630 http://bugs.php.net/bug.php?id=18630 , however the
>bug was then just closed as a documentation problem and nothing was changed,
>which is why I'm sending this here rather than adding to the bug report.
>
>Anyway, on systems with case-insensitive file systems this problem
>effectively makes require_once() useless and means you have to rely on code
>blocks such as:
>if (defined("ASRD_INCLUDED"))
>  return;
>define("ASRD_INCLUDED", TRUE);
>
>at the top of every single include file, this is definitely ugly and would
>be much better replaced by require_once().
>Also using this to prevent multiple inclusions still means that the file
>will be parsed multiple times which is an unnecessary performance drain.
>
> > […]
>a matter of taking a copy of the filename and making it lowercase on windows
>systems before adding it to the EG(included_files) hashtable.
>
>Is there any chance this could be fixed before 4.3.4 is released, as it is
>definitely a bug and not a documentation problem.
>
>
>Cheers,
>Pete Dishman
>
>------------------------------------------------
>
>Peter Dishman
>
>Software Engineer
>
>Email: peterd@telephonetics.co.uk
>
>Address: Telephonetics, Hamilton House, 111 Marlowes, Hemel Hempstead,
>Herts. HP1 1BB
>+44 (0)1442 242 242 Telephonetics - Making Sound Business Sense -
>www.telephonetics.co.uk
>
>Telephonetics ContactPortal (R) available now :
>www.telephonetics.co.uk/products/product_contactportal.html
>Intelligent call routing by spoken voice - just say the name and it dials
>for you. Call me on 01442 242 242 to hear it in action.
>
>Arrange flower delivery via local florists using the Telephonetics / Web
>Florist service on 08450 111 111 www.webflorists.co.uk/find_a_florist.htm
>Prompt service anywhere in the UK.
>
>The disclaimer available at www.telephonetics.co.uk/edisc.html or by sending
>email
>to <mailto:email-disclaimer@telephonetics.co.uk

---

## #5082 — Andi Gutmans — 2003-10-29T21:17:49+00:00

URL: https://externals.io/message/5066#5082 · In reply to: #5066

Forget it. I screwed up. It doesn't work yet.

At 11:12 PM 10/29/2003 +0200, Andi Gutmans wrote:
>Hey,
>
>I might have fixed this. Can you please check the latest CVS and let me 
>know if it works for you?
>
>Thanks,
>
>Andi
>
>At 03:36 PM 10/29/2003 +0000, Pete Dishman wrote:
> > […]
