PHP: विंडोज के तहत umlauts के साथ फ़ाइल का उपयोग

वेब सर्वर पर फ़ाइलें हमेशा रिक्त स्थान के बिना होनी चाहिए ("यह एक चित्र नहीं है ।jpg"), बिना umlauts या विशेष वर्णों ("फुटबॉल.jpg") के बिना, बैकस्लैश के बिना ("Arbeit \ Auto.jpg") और कम मामले में नहीं ("") test.JPG ")। हाल ही में, हालांकि, मुझे ग्राहक परियोजना के लिए किसी भी फ़ाइल नाम के साथ बड़ी संख्या में प्रीसेट फ़ाइलों को एक्सेस और प्रोसेस करना पड़ा।


लिनक्स सिस्टम डिफ़ॉल्ट रूप से umlauts और विशेष वर्णों के साथ फ़ाइलों तक पहुंच की अनुमति देता है, ताकि कोई विशेष सुविधाओं पर विचार न किया जाए। यह विंडोज सिस्टम पर पूरी तरह से अलग दिखता है: यहां आपको कुछ ट्रिक का उपयोग करना होगा और 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');

सच लौटाता है।

वापस