PHP: Akses fail dengan umlaut di Windows

Fail di pelayan web harus selalu tanpa spasi (bukan "ini gambar.jpg"), tanpa umlaut atau watak khas (bukan "football.jpg"), tanpa garis miring terbalik (bukan "Arbeit \ Auto.jpg") dan dalam huruf kecil (bukan "" ujian.JPG "). Namun, baru-baru ini, saya terpaksa mengakses dan memproses sebilangan besar fail dengan nama fail apa pun untuk projek pelanggan.


Sistem Linux membenarkan akses ke fail dengan umlaut dan watak khas secara lalai, sehingga tidak ada ciri khas yang harus dipertimbangkan di sini. Ia kelihatan sama sekali berbeza pada sistem Windows: Di sini anda harus menggunakan beberapa helah dan memasuki antara muka COM. Pertama sekali, anda memasukkan peluasan yang diperlukan dalam php.ini

[COM_DOT_NET]
extension = php_com_dotnet.dll

satu. Kini kelas penolong yang sangat berguna WinfsUtf8 digunakan, yang sangat memudahkan akses ke objek COM dan peta hampir semua fungsi PHP yang mempengaruhi fail. Setelah mengintegrasikan fail dengan

require_once('WinfsUtf8.php');

seseorang mempunyai semua kemungkinan akses fail, contohnya hasil

file_exists('ä.jpg');

tidak betul salah, sedangkan

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

kembali benar.

Belakang