Web sunucularındaki dosyalar her zaman boşluksuz ("bu bir resim.jpg" değil), çift nokta veya özel karakterler ("futbol.jpg" değil), ters eğik çizgi ("Arbeit \ Auto.jpg" değil) ve küçük harf ("" değil) olmalıdır. test.JPG "). Ancak son zamanlarda, bir müşteri projesi için herhangi bir dosya adına sahip çok sayıda dosyaya erişmem ve bunları işlemem gerekti.
Linux sistemleri, varsayılan olarak çift nokta işaretli ve özel karakterli dosyalara erişime izin verir, bu nedenle burada hiçbir özel özelliğin dikkate alınması gerekmez. Windows sistemlerinde tamamen farklı görünüyor: Burada bazı hileler kullanmanız ve COM arayüzüne dokunmanız gerekiyor. Her şeyden önce gerekli uzantıyı php.ini içine dahil edersiniz
[COM_DOT_NET] extension = php_com_dotnet.dll
bir. Şimdi, COM nesnelerine erişimi büyük ölçüde kolaylaştıran ve dosyaları etkileyen hemen hemen tüm PHP işlevlerini eşleştiren çok yardımcı yardımcı sınıf WinfsUtf8 kullanılıyor. Dosyayı entegre ettikten sonra
require_once('WinfsUtf8.php');
biri dosya erişiminin tüm olanaklarına sahiptir, örneğin sonuçlar
file_exists('ä.jpg');
yanlış olarak yanlış
Patchwork\PHP\Override\WinfsUtf8::file_exists('ä.jpg');
true döndürür.