PHP: acceso a archivos con diéresis en Windows

Los archivos en los servidores web siempre deben estar sin espacios (no "esto es una imagen.jpg"), sin diéresis ni caracteres especiales (no "fútbol.jpg"), sin barras invertidas (no "Arbeit \ Auto.jpg") y en minúsculas (no "" test.JPG "). Recientemente, sin embargo, tuve que acceder y procesar una gran cantidad de archivos con cualquier nombre de archivo para un proyecto de cliente.


Los sistemas Linux permiten el acceso a archivos con diéresis y caracteres especiales de forma predeterminada, por lo que aquí no es necesario considerar características especiales. Se ve completamente diferente en los sistemas Windows: aquí debe usar algunos trucos y acceder a la interfaz COM. En primer lugar, incluye la extensión requerida en php.ini

[COM_DOT_NET]
extension = php_com_dotnet.dll

uno. Ahora se utiliza la clase auxiliar muy útil WinfsUtf8 , que simplifica enormemente el acceso a los objetos COM y mapea casi todas las funciones PHP que afectan a los archivos. Después de integrar el archivo con

require_once('WinfsUtf8.php');

uno tiene todas las posibilidades de acceso a archivos, por ejemplo, resultados

file_exists('ä.jpg');

incorrectamente falso, mientras que

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

devuelve verdadero.

Atrás