PHP: Dosiera aliro kun umlaŭtoj sub Vindozo

Dosieroj sur retserviloj ĉiam estu konservitaj sen spacetoj (ne "ĉi tio estas bildo.jpg"), sen umlaŭtoj aŭ specialaj signoj (ne "futbalo.jpg"), sen oblikvaj strekoj (ne "laboro\aŭto.jpg"), kaj minuskle (ne "testo.JPG"). Lastatempe, tamen, por klienta projekto, mi devis aliri kaj prilabori grandan nombron da antaŭdifinitaj dosieroj kun arbitraj dosiernomoj.


Linukso-sistemoj permesas aliron al dosieroj kun umlaŭtoj kaj specialaj signoj defaŭlte, tiel ke neniuj specialaj trajtoj devas esti konsiderataj ĉi tie. Ĝi aspektas tute malsama ĉe Vindozaj sistemoj: Ĉi tie vi devas uzi iujn lertaĵojn kaj enmeti la interfacon COM. Unue vi inkluzivas la bezonatan etendaĵon en php.ini

[COM_DOT_NET]
extension = php_com_dotnet.dll

unu. Nun estas uzata la tre helpema helpa klaso WinfsUtf8 , kiu tre simpligas aliron al la COM-objektoj kaj mapas preskaŭ ĉiujn PHP-funkciojn, kiuj efikas sur dosieroj. Post integrado de la dosiero kun

require_once('WinfsUtf8.php');

oni havas ĉiujn eblecojn pri la aliro al dosiero, ekzemple rezultoj

file_exists('ä.jpg');

malĝuste malvera, dum

Patchwork\PHP\Override\WinfsUtf8::file_exists('ä.jpg');

redonas veron.

Reen