PHP: доступ к файлам с умляутами под Windows

Файлы на веб-серверах всегда должны быть без пробелов (не "this is a picture.jpg"), без умляутов или специальных символов (не "football.jpg"), без обратной косой черты (не "Arbeit \ Auto.jpg") и в нижнем регистре (не " test.JPG "). Однако недавно мне пришлось получить доступ и обработать большое количество файлов предустановок с любым именем файла для проекта клиента.


Системы Linux по умолчанию разрешают доступ к файлам с умляутами и специальными символами, поэтому здесь нет необходимости рассматривать какие-либо специальные функции. В системах Windows это выглядит совершенно иначе: здесь вам нужно использовать некоторые приемы и подключиться к интерфейсу COM. Прежде всего, вы включаете необходимое расширение в php.ini

[COM_DOT_NET]
extension = php_com_dotnet.dll

один. Теперь используется очень полезный вспомогательный класс WinfsUtf8 , который значительно упрощает доступ к COM-объектам и отображает почти все функции PHP, влияющие на файлы. После интеграции файла с

require_once('WinfsUtf8.php');

есть все возможности доступа к файлам, например результаты

file_exists('ä.jpg');

неправильно ложь, тогда как

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

возвращает истину.

Назад