PHP: Truy cập tệp với âm sắc trong Windows

Các tệp trên máy chủ web luôn phải được lưu trữ không có khoảng trắng (không phải "this is an image.jpg"), không có dấu umlaut hoặc ký tự đặc biệt (không phải "football.jpg"), không có dấu gạch chéo ngược (không phải "work\car.jpg") và viết thường (không phải "test.JPG"). Tuy nhiên, gần đây, trong một dự án của khách hàng, tôi phải truy cập và xử lý một số lượng lớn các tệp được định nghĩa trước với tên tệp tùy ý.


Các hệ thống Linux cho phép truy cập vào các tệp có âm sắc và ký tự đặc biệt theo mặc định, do đó không có tính năng đặc biệt nào được xem xét ở đây. Nó trông hoàn toàn khác trên hệ thống Windows: Ở đây bạn phải sử dụng một số thủ thuật và nhấn vào giao diện COM. Trước hết, bạn bao gồm phần mở rộng bắt buộc trong php.ini

[COM_DOT_NET]
extension = php_com_dotnet.dll

một. Bây giờ, lớp trợ giúp rất hữu ích WinfsUtf8 được sử dụng, giúp đơn giản hóa đáng kể việc truy cập vào các đối tượng COM và ánh xạ hầu hết các hàm PHP ảnh hưởng đến tệp. Sau khi tích hợp tệp với

require_once('WinfsUtf8.php');

một người có tất cả các khả năng truy cập tệp, ví dụ như kết quả

file_exists('ä.jpg');

sai sai, ngược lại

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

trả về true.

Trở lại