PHP में फ़ाइल एक्सटेंशन कैसे प्राप्त करें: 2025 की सर्वश्रेष्ठ विधियाँ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

PHP में फ़ाइल एक्सटेंशन कैसे प्राप्त करें: 2025 में शुरुआत से विशेषज्ञ तक

\n\n

क्या आपने कभी सोचा है कि एक PHP डेवलपर को दिन में कितनी बार फ़ाइल एक्सटेंशन निकालने की ज़रूरत होती है? दर्जनों, शायद सैकड़ों बार। अवतार अपलोड करना, दस्तावेज़ प्रोसेस करना, इमेज वैलिडेशन — हर जगह यह समझना ज़रूरी है कि आपके पास कौन सी फ़ाइल आई है: .jpg, .pdf या कोई चालाक .php.jpg।

\n\n

सवाल "PHP में फ़ाइल का एक्सटेंशन कैसे प्राप्त करें?" Stack Overflow पर सबसे लोकप्रिय प्रश्नों में से एक है। और यह कोई संयोग नहीं है। लगता है कि यह बहुत आसान है? लेकिन असल में, शैतान हमेशा विवरणों में छिपा होता है। 2025 में, हमारे पास न केवल पुराने और भरोसेमंद pathinfo() और explode() हैं, बल्कि PHP 8.4 की नई क्षमताएँ भी हैं जो कोड को साफ और सुरक्षित बनाती हैं।

\n\n

आइए 5 काम करने वाले तरीकों, उनके फायदे, नुकसान और कब किसका उपयोग करें, पर विस्तार से चर्चा करें। चलिए शुरू करते हैं!

\n\n

1. क्लासिक तरीका: pathinfo() — सभी विधियों का राजा

\n\n

सबसे लोकप्रिय और सही तरीका है pathinfo() फ़ंक्शन। यह PHP 4 से उपलब्ध है और आज भी उतना ही प्रासंगिक है। क्यों? क्योंकि यह स्मार्ट है: यह सिस्टम पथ सेपरेटर को ध्यान में रखता है, URL के साथ काम करता है, और फ़ाइल नाम में डॉट्स से नहीं टूटता।

\n\n
<?php\n$file = 'document.report.pdf';\n$extension = pathinfo($file, PATHINFO_EXTENSION);\n// परिणाम: 'pdf'\n?>
\n\n

लेकिन एक बारीकी है। अगर फ़ाइल का कोई एक्सटेंशन नहीं है, तो pathinfo() एक खाली स्ट्रिंग लौटाएगा। null या false नहीं — बल्कि एक खाली स्ट्रिंग। सख्त जाँच के लिए यह महत्वपूर्ण है।

\n\n
<?php\n$file = 'README';\n$ext = pathinfo($file, PATHINFO_EXTENSION);\nvar_dump($ext); // string(0) ""\n?>
\n\n

कब उपयोग करें: हमेशा जब आपको जल्दी और विश्वसनीय रूप से एक्सटेंशन प्राप्त करना हो। यह उद्योग का मानक है।

\n\n

2. पुराना स्कूल तरीका: explode() और strrpos()

\n\n

कुछ पुराने ज़माने के डेवलपर मैन्युअल स्ट्रिंग पार्सिंग पसंद करते हैं। विचार सरल है: आखिरी डॉट ढूंढें और उसके बाद का सब कुछ ले लें।

\n\n
<?php\n$file = 'image.jpg';\n$parts = explode('.', $file);\n$extension = end($parts);\n// परिणाम: 'jpg'\n?>
\n\n

यह काम करता है। लेकिन एक समस्या है: explode() एक ऐरे बनाता है, और end() ऐरे के आंतरिक पॉइंटर को शिफ्ट करता है। यह गंभीर नहीं है, लेकिन सुरुचिपूर्ण नहीं है।

\n\n

अधिक प्रदर्शनकारी विकल्प है strrpos() + substr():

\n\n
<?php\n$file = 'archive.tar.gz';\n$pos = strrpos($file, '.');\n$extension = $pos !== false ? substr($file, $pos + 1) : '';\n// परिणाम: 'gz'\n?>
\n\n

ध्यान दें: strrpos() डॉट की अंतिम उपस्थिति ढूंढता है। यह सही है — हमें gz चाहिए, tar.gz नहीं।

\n\n

कब उपयोग करें: जब pathinfo() उपलब्ध न हो (असामान्य स्थिति) या आपको लॉजिक पर अधिक नियंत्रण चाहिए।

\n\n

3. 2025 की नई सुविधा: str_contains() और str_starts_with()

\n\n

PHP 8.0 में str_contains() और str_starts_with() आए, और PHP 8.4 में मल्टीबाइट स्ट्रिंग्स के साथ बेहतर काम करने की सुविधा मिली। यह नए सुरुचिपूर्ण तरीके खोलता है।

\n\n
<?php\n$file = 'photo.2025.jpg';\n\nif (str_contains($file, '.')) {\n    $extension = substr($file, strrpos($file, '.') + 1);\n} else {\n    $extension = '';\n}\n// परिणाम: 'jpg'\n?>
\n\n

सुंदर? बहुत नहीं। लेकिन अगर आपको यह जाँचना है कि फ़ाइल एक इमेज है या नहीं, तो str_ends_with() आपका दोस्त है:

\n\n
<?php\n$file = 'avatar.png';\n$isImage = str_ends_with($file, '.png') || str_ends_with($file, '.jpg');\n// true\n?>
\n\n

कब उपयोग करें: पूरा एक्सटेंशन निकाले बिना विशिष्ट एक्सटेंशन की त्वरित जाँच के लिए।

\n\n

4. रेगुलर एक्सप्रेशन: जब एक साथ सब कुछ चाहिए

\n\n

कभी-कभी सिर्फ एक्सटेंशन काफी नहीं होता। उदाहरण के लिए, यह जाँचना कि फ़ाइल एक सुरक्षित इमेज है, और साथ ही बिना एक्सटेंशन के नाम निकालना। यहाँ रेगुलर एक्सप्रेशन काम आता है।

ब्लॉग

पुस्तक अनुशंसाएँ