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

वेब सर्वरों पर फ़ाइलें हमेशा बिना स्पेस (जैसे "this is an image.jpg"), बिना उम्लाउट या विशेष वर्णों (जैसे "football.jpg"), बिना बैकस्लैश (जैसे "work\car.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');

सच लौटाता है।

वापस