के लिए एक स्ट्रिंग की जांच करें मुझे एक फ़ंक्शन, मूल या उपयोगकर्ता की आवश्यकता है, जो जांचता है कि कोई स्ट्रिंग मान्य निर्देशिका नाम है या नहीं। मैंने PHP दस्तावेज़ों को देखा है और मुझे केवल is_dir
फ़ंक्शन मिल सकता है जो जांचता है कि यह मौजूदा निर्देशिका है या नहीं, निर्देशिका के लिए मान्य नाम है या नहीं।मान्य निर्देशिका नाम
उत्तर
यह आपके लिए काम करना चाहिए।
regex for validating folder name & file name
if (strpbrk($filename, "\\/?%*:|\"<>") === FALSE) {
/* $filename is legal; doesn't contain illegal character. */
}
else {
/* $filename contains at least one illegal character. */
}
यह काम कर सकेगा। आप अपनी जरूरतों के लिए दूसरे और तीसरे तर्क को संशोधित कर सकते हैं।
if (!mkdir($directory, 0700, true)) {
die('Error: Illegal directory.');
}
ध्यान दें कि निर्देशिका नाम मान्य होने पर यह निर्देशिका बना देगा। हालांकि, मेरी विनम्र राय में (और आपके विशेष उपयोग मामले को जानने के बिना), अधिकांश भाषाओं में चेकिंग निर्देशिका नाम वैधता को संभालने के लिए यह पसंदीदा तरीका है। बस निर्देशिका बनाने का प्रयास करें, और यदि यह विफल हो जाता है, तो उन्हें बताएं कि यह विफल रहा है।
इसका लाभ यह है कि यह आपके कोड फ़ाइल सिस्टम अज्ञेयवादी रखता है और यह निर्देशिका को सत्यापित करने और बनाने के लिए कम से कम त्रुटि-प्रवण विधि है, क्योंकि कोई अन्य प्रक्रिया या धागा मान्य होने पर एक निर्देशिका बनाने में सक्षम नहीं होगा निर्देशिका और जब आप इसे बनाते हैं।
दोष यह है कि यह विधि मानती है कि आप तुरंत निर्देशिका बनाना चाहते हैं।
बेशक, कई कारण हैं कि mkdir()
विफल हो सकता है (उदा। अपर्याप्त अनुमतियां, हार्डवेयर विफलता, अमान्य निर्देशिका नाम इत्यादि), ताकि आप त्रुटि के आधार पर उपयोगकर्ता को विभिन्न त्रुटि संदेश प्रदर्शित करना चाहें। दुर्भाग्यवश, PHP में कुछ अन्य भाषाओं के रूप में मजबूत अपवाद हैंडलिंग नहीं है, लेकिन क्या आप इस सड़क पर जाना चाहते हैं, तो mkdir()
उत्पन्न होने वाली विभिन्न चेतावनियों को पकड़ने के लिए आपको इस answer जैसे दृष्टिकोण का उपयोग करने में सक्षम होना चाहिए।
शायद आपको यह कोशिश करनी चाहिए: 'mkdir (' dirname/test /../ temp ', 0700, true);' निश्चित रूप से 'gregoryBurns उनके उत्तर में सुझाए गए कुछ चीज़ों के लिए '$ निर्देशिका' नाम फ़िल्टर करने के लिए उपयोगी हो सकता है ... – Wilt
- 1. मान्य लोकेल नाम
- 2. jQuery मान्य प्लगइन - मान्य छिपे हुए फ़ील्ड का नाम द्वारा
- 3. os.walk निर्देशिका नाम
- 4. पार्स निर्देशिका का नाम
- 5. दबाने निर्देशिका नाम DIR
- 6. 'jquery' मान्य स्क्रिप्ट नाम नहीं है। नाम '.js'
- 7. वेब सेवा विधि नाम मान्य नहीं है
- 8. प्रोफ़ाइल का नाम मान्य नहीं है
- 9. घातक: कोई मान्य वस्तु का नाम: 'गुरु'
- 10. सी # में मैं विंडोज निर्देशिका नाम
- 11. Win32Exception: निर्देशिका नाम अमान्य है
- 12. निर्देशिका का नाम कैसे बदलें?
- 13. नाम के बाद github निर्देशिका निर्देशिका का पालन कैसे करें?
- 14. सक्रिय निर्देशिका अंतिम पासवर्ड क्यों मान्य करती है?
- 15. मैं एलडीएपी + एसएसएल पर सक्रिय निर्देशिका क्रेडिट कैसे मान्य करूं?
- 16. कॉलम का नाम मान्य नहीं है। [नोड नाम (यदि कोई है) = t0, कॉलम नाम = संस्करण]
- 17. आभासी निर्देशिका का नाम प्राप्त करें?
- 18. PHP वर्तमान निर्देशिका का नाम प्राप्त करें
- 19. Nuget: पैकेज निर्देशिका पथ बदलें और नाम
- 20. Path.GetTempFileName - निर्देशिका का नाम अमान्य है
- 21. निर्देशिका मौजूद नहीं है - पैरामीटर नाम: निर्देशिकाVirtualPath
- 22. मैं .git निर्देशिका का नाम कैसे बदलूं?
- 23. विंडोज सेवा (कुंजी) नाम में मान्य वर्ण क्या हैं?
- 24. SQL सर्वर डेटाबेस नाम में कौन से वर्ण मान्य हैं?
- 25. Magento - घातक त्रुटि: कक्षा का नाम मान्य ऑब्जेक्ट या स्ट्रिंग
- 26. रुपयेपेक रेल - नाम मान्य होना चाहिए - कुछ स्पष्टीकरण
- 27. दबाएं "संसाधन का नाम मान्य पहचानकर्ता नहीं है"
- 28. jQuery एक ही नाम के साथ एकाधिक फ़ील्ड मान्य करें
- 29. मान्य यूडीआईडीएस?
- 30. उपयोगकर्ता नाम, पहला नाम, अंतिम नाम और ईमेल के लिए सक्रिय निर्देशिका क्वेरी
"वैध निर्देशिका नाम" परिभाषित करें प्रत्येक ओएस के अपने स्वयं के प्रतिबंध हैं। परिभाषित करें कि कानूनी क्या है और नहीं, और फिर उसके खिलाफ मान्य करें। –
एक निर्देशिका जो मौजूद नहीं है एक अवैध निर्देशिका होगी, नहीं? –
आप 'सामान्य' निर्देशिका regex के लिए खोज सकते हैं .. – Darkwater