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.