php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #60017 __FILE__ case inconsistency on Mac / MAMP
Submitted: 2011-10-08 21:51 UTC Modified: -
Votes:5
Avg. Score:3.6 ± 1.5
Reproduced:3 of 3 (100.0%)
Same Version:1 (33.3%)
Same OS:2 (66.7%)
From: ykessler at gmail dot com Assigned:
Status: Open Package: Filesystem function related
PHP Version: Irrelevant OS: Mac OSX
Private report: No CVE-ID:
Have you experienced this issue?
Rate the importance of this bug to you:

 [2011-10-08 21:51 UTC] ykessler at gmail dot com
Description:
------------
---
From manual page: http://www.php.net/language.constants.predefined
---

__FILE__ and __DIR__, return lower case paths when in the calling file, and mixed 
case paths in an included file, when run on MAMP.

Test script:
---------------
//The following will show all lower case paths when in the calling file, 
//and mixed case paths in an included file, when run on MAMP.

echo "<br/>__FILE__ = ".__FILE__;
echo "<br/>__DIR__ = ".__DIR__;

// include another file with the same code ...

Actual result:
--------------
__FILE__ = /users/me/stuff/mamp_server/my_site/myfile.php
__DIR__ = /users/me/stuff/mamp_server/my_site

__FILE__ = /Users/me/Stuff/mamp_server/my_site/myfile.php
__DIR__ = /Users/me/Stuff/mamp_server/my_site

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2011-10-08 23:39 UTC] karcieri at gmail dot com
Environment:
---------------
Zend Server version: 5.1.0

Test script:
---------------
Same as bug report

Actual result:
--------------
__FILE__ = /usr/local/zend/apache2/htdocs/Test
__DIR__ = /usr/local/zend/apache2/htdocs/Test

__FILE__ = /usr/local/zend/apache2/htdocs/Test
__DIR__ = /usr/local/zend/apache2/htdocs/Test

Is it possible that this bug is only related to the Users directory?
 [2011-10-16 13:30 UTC] ykessler at gmail dot com
Here is another test run outside the Users directory, in the standard MAMP 
install under Applications/MAMP/htdocs:

a.php:

<?php
echo "<br/>__FILE__ = ".__FILE__;
echo "<br/>__DIR__ = ".__DIR__;
include("a_inc.php");
?>

a_inc.php:

<?php
echo "<br/>__FILE__ = ".__FILE__;
echo "<br/>__DIR__ = ".__DIR__;
?>

http://localhost/tests/a.php =

__FILE__ = /applications/mamp/htdocs/tests/a.php
__DIR__ = /applications/mamp/htdocs/tests
__FILE__ = /Applications/MAMP/htdocs/tests/a_inc.php
__DIR__ = /Applications/MAMP/htdocs/tests


Zend Engine v2.3.0
OSX 10.6.8
Apache/2.0.63 (Unix) PHP/5.3.2 DAV/2
 [2011-11-05 01:10 UTC] pjb109 at hotmail dot com
Trying to write to a php file but not possible on MAMP. 

Instead tried to echo the line '<?php $var = "abc"; ?>'  and this is also not possible?? Any ideas.
 [2012-01-23 22:30 UTC] gmblar+php at gmail dot com
This happens because the default filesystem (hfs+) is case insensitive.

a.php

<?php

include strtolower(realpath('b.php'));
include strtoupper(realpath('b.php'));


b.php

<?php

var_dump(__FILE__);


Output:
string(23) "/users/blar/sites/b.php"
string(23) "/USERS/BLAR/SITES/B.PHP"
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Wed Apr 23 18:01:55 2014 UTC