PHP: Windowsтун астында умлауттар менен файлга мүмкүндүк алуу

Веб-серверлердеги файлдар ар дайым боштуксуз ("бул сүрөт.jpg эмес"), умлауттарсыз же атайын символдорсуз ("football.jpg эмес"), тескери сызыктарсыз ("work\car.jpg" эмес) жана кичине тамгалар менен ("test.JPG" эмес) сакталышы керек. Бирок, жакында эле кардар долбоору үчүн мен каалагандай файл аттары бар көп сандагы алдын ала аныкталган файлдарга кирип, аларды иштетишим керек болду.


Linux тутумдары демейки шартта umlauts жана атайын белгилери бар файлдарга мүмкүнчүлүк берет, андыктан бул жерде эч кандай өзгөчө функциялар эске алынбайт. Windows тутумдарында таптакыр башкача көрүнөт: Бул жерде бир нече фокусту колдонуп, COM интерфейсине кирип кетүү керек. Биринчиден, php.ini файлына керектүү кеңейтүүнү киргизесиз

[COM_DOT_NET]
extension = php_com_dotnet.dll

бир. Азыр COM объектилерине жеткиликтүүлүктү бир кыйла жеңилдеткен жана PHP файлдарына таасирин тийгизген дээрлик бардык жардамчы класс WinfsUtf8 колдонулат. Менен файлды бириктиргенден кийин

require_once('WinfsUtf8.php');

мисалы, натыйжалар үчүн файлга кирүүгө бардык мүмкүнчүлүктөр бар

file_exists('ä.jpg');

туура эмес жалган, ал эми

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

return true.

Артка