PHP: Πρόσβαση αρχείων με umlauts στα Windows

Τα αρχεία σε διακομιστές ιστού θα πρέπει πάντα να είναι χωρίς κενά (όχι "αυτό είναι μια εικόνα.jpg"), χωρίς umlauts ή ειδικούς χαρακτήρες (όχι "football.jpg"), χωρίς ανάστροφη κάθετο (όχι "Arbeit \ Auto.jpg") και σε πεζά (όχι "" δοκιμή.JPG "). Πρόσφατα, ωστόσο, έπρεπε να έχω πρόσβαση και να επεξεργαστώ έναν μεγάλο αριθμό αρχείων με οποιοδήποτε όνομα αρχείου για ένα έργο πελάτη.


Τα συστήματα Linux επιτρέπουν την πρόσβαση σε αρχεία με umlauts και ειδικούς χαρακτήρες από προεπιλογή, έτσι ώστε να μην χρειάζεται να ληφθούν υπόψη ειδικές δυνατότητες εδώ. Φαίνεται εντελώς διαφορετικό στα συστήματα των Windows: Εδώ πρέπει να χρησιμοποιήσετε κάποια κόλπα και να πατήσετε στη διεπαφή COM. Πρώτα απ 'όλα, συμπεριλαμβάνετε την απαιτούμενη επέκταση στο php.ini

[COM_DOT_NET]
extension = php_com_dotnet.dll

ένας. Τώρα χρησιμοποιείται η πολύ χρήσιμη βοηθητική κλάση WinfsUtf8 , η οποία απλοποιεί σημαντικά την πρόσβαση στα αντικείμενα COM και χαρτογραφεί σχεδόν όλες τις λειτουργίες PHP που επηρεάζουν τα αρχεία. Μετά την ολοκλήρωση του αρχείου με

require_once('WinfsUtf8.php');

κάποιος έχει όλες τις δυνατότητες πρόσβασης στο αρχείο, για παράδειγμα αποτελέσματα

file_exists('ä.jpg');

λανθασμένα ψευδείς, ενώ

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

επιστρέφει αλήθεια.

Πίσω