Bug #79739 [Com]: inconsistent __DIR__ with accent

From: Date: Fri, 26 May 2023 05:44:11 +0000
Subject: Bug #79739 [Com]: inconsistent __DIR__ with accent
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-244544@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: dkjjdjksk45 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: That was so amazing. (https://www.prepaidgiftbalance.vip/)github.com Previous Comments: ------------------------------------------------------------------------ [2022-12-20 09:14:35] Harold151Harris at gmail dot com 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 ------------------------------------------------------------------------ [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 cré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

« previous php.bugs (#244544) next »