Bug #79739 [Com]: inconsistent __DIR__ with accent
| From: | Harold151Harris at gmail dot com | Date: | Tue, 20 Dec 2022 09:14:35 +0000 |
| Subject: | Bug #79739 [Com]: inconsistent __DIR__ with accent | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-243197@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=79739&edit=1
ID: 79739
Comment by: Harold151Harris at gmail dot com
Reported by: lingtalfi at gmail dot com
Summary: inconsistent __DIR__ with accent
Status: Open
Type: Bug
Package: Apache2 related
Operating System: mac osX mojave 10.14.6
PHP Version: 7.2.31
Block user comment: N
Private report: N
New Comment:
What about creating an include file in the same directory as your app.
<?php return __DIR__; ?>
Use it like so:
$trueDIR = include('get_true_dir.php');
From what you posted above, this should work. Yes, it's a bit of a hacky workaround, but it is
a workaround, and should work even on systems not suffering from this issue.
(https://www.aetna-medicare.org/)github.com
Previous Comments:
------------------------------------------------------------------------
[2022-11-25 06:14:01] Betty3564oyle at gmail dot com
Erwin Moller's profile photo
Erwin Moller
unread,
Oct 9, 2013, 4:03:16 PM
to
Hello comp.lang.php,
How can PHP open files on the local filesystem that contain certain
characters, like umlauts, accents, etc?
I am currently developing on Win2008 with PHP 5.5.1 (CGI/FastCGI).
So the underlying filesystem is NTFS.
Files with names like the following are inaccessible:
ierländer.pdf
EugÄne.pdf
etc.
All files without these characters ARE readable.
(https://www.foremostpayonline.org/)github.com
------------------------------------------------------------------------
[2020-06-26 07:46:26] lingtalfi at gmail dot com
Description:
------------
I create two files in my webroot directory www (served by apache 2.4.37):
- a.php
- b.php
In both I add this script:
```php
var_dump(__DIR__); exit;
```
The output from **a.php** is different than the one from **b.php** !!!
The output from a is this:
```html
string(88) "/Users/xxxxxxxxxxxxx/Documents/it/web/Komin>/service
création/projets/jin_site_demo/www"
```
While the output from b is this:
```html
string(89) "/Users/pierrelafitte/Documents/it/web/Komin>/service
creÌation/projets/jin_site_demo/www"
```
I'm not sure where the problem comes from (php?, apache?, my mac?),
but there is obviously a problem as they should output the exact same string.
The problem comes from the accent (é) which is not encoded in the same manner,
I tried using the php binary (php -f a.php), and both scripts output identical output, which means
that the problem only occur when using php with apache.
I'm just a php user (not php developer) so I don't have any patch, but hopefully, if
it's a php problem, this post helps to fix it.
Test script:
---------------
var_dump(__DIR__); exit;
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=79739&edit=1