PHP 8: str_starts_with और str_ends_with — स्ट्रिंग की शुरुआत और अंत कैसे जांचें

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

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

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

अब और कोई जुगाड़ नहीं: PHP 8 में str_starts_with और str_ends_with से परिचय

\n\n

क्या आपने कभी ऐसा कोड लिखा है जैसे if (strpos($str, 'prefix') === 0) और महसूस किया कि यह थोड़ा अटपटा लग रहा है? या हो सकता है, आपने स्ट्रिंग के अंत की जांच करने के लिए substr($str, -3) === 'end' को समझने में समय बर्बाद किया हो? अगर हाँ — तो मेरे पास आपके लिए एक शानदार खबर है। PHP 8.0 से शुरू करके, भाषा में दो सुंदर और सहज फंक्शन जोड़े गए हैं: str_starts_with() और str_ends_with()।

\n\n

इस लेख में हम इन्हें पूरी तरह से समझेंगे। आप जानेंगे कि ये कैसे काम करते हैं, पुराने तरीकों से कैसे अलग हैं, और क्यों इन्हें हर आधुनिक PHP प्रोजेक्ट में इस्तेमाल करना चाहिए। हम डेवलपर के रियल-लाइफ उदाहरण भी देखेंगे — URL चेक करने से लेकर ईमेल वैलिडेशन और फ़ाइल पथ के साथ काम करने तक।

\n\n

str_starts_with() और str_ends_with() क्या हैं?

\n\n

ये PHP 8 के बिल्ट-इन फंक्शन हैं, जो यह जांचने की अनुमति देते हैं कि कोई स्ट्रिंग किसी दिए गए सबस्ट्रिंग से शुरू होती है या उस पर खत्म होती है। ये बूलियन वैल्यू (true या false) लौटाते हैं, जो इन्हें कंडीशन में इस्तेमाल करने के लिए आदर्श बनाता है।

\n\n

यहाँ इनका बेसिक सिंटैक्स है:

\n\n
str_starts_with(string $haystack, string $needle): bool\nstr_ends_with(string $haystack, string $needle): bool
\n\n

जहाँ $haystack वह स्ट्रिंग है जिसे आप जांच रहे हैं, और $needle वह सबस्ट्रिंग है जिसे आप शुरुआत या अंत में ढूंढ रहे हैं।

\n\n

सरल उदाहरण

\n\n
<?php\n$string = "Hello, world!";\n\n// जांचें कि स्ट्रिंग "Hello" से शुरू होती है या नहीं\nif (str_starts_with($string, "Hello")) {\n    echo "स्ट्रिंग 'Hello' से शुरू होती है"; // यह कोड चलेगा\n}\n\n// जांचें कि स्ट्रिंग "world!" पर खत्म होती है या नहीं\nif (str_ends_with($string, "world!")) {\n    echo "स्ट्रिंग 'world!' पर खत्म होती है"; // यह भी चलेगा\n}\n?>
\n\n

सरल है, है ना? कोई अतिरिक्त गणना नहीं, कोई === 0 या strlen() नहीं। बस जांच और परिणाम।

\n\n

यह क्यों महत्वपूर्ण है? पुराने तरीकों की समस्याएं

\n\n

PHP 8 से पहले, डेवलपर्स को तरह-तरह के जुगाड़ करने पड़ते थे। स्ट्रिंग की शुरुआत जांचने का सबसे लोकप्रिय तरीका कुछ इस तरह था:

\n\n
if (strpos($string, 'prefix') === 0) { ... }
\n\n

इसमें समस्या क्या है? strpos() सबस्ट्रिंग को स्ट्रिंग में कहीं भी ढूंढता है, सिर्फ शुरुआत में नहीं। हाँ, === 0 की जांच गलत परिणामों को हटा देती है, लेकिन कोड डेवलपर के इरादे को नहीं बताता। आप इसे देखते हैं और सोचते हैं: "अच्छा, यह जांच रहा है कि शुरुआत होती है... या सिर्फ ढूंढ रहा है?" — इससे पढ़ने में कमी आती है।

\n\n

और स्ट्रिंग के अंत की जांच और भी कम सहज थी:

\n\n
if (substr($string, -3) === 'end') { ... }
\n\n

यहाँ सबस्ट्रिंग की लंबाई (-3) का सही-सही पता होना ज़रूरी है, जो गलत नंबर देने पर त्रुटियों का कारण बनता है। साथ ही, अगर सबस्ट्रिंग स्ट्रिंग से लंबी है — तो substr() बस एक खाली स्ट्रिंग लौटा देगा, और कंडीशन कभी सफल नहीं होगी।

\n\n

नए फंक्शन str_starts_with() और str_ends_with() इन सभी समस्याओं को हल करते हैं:

\n
    \n
  • पढ़ने में आसानी: कोड खुद ही अपना मतलब बताता है।
  • \n
  • विश्वसनीयता: सबस्ट्रिंग की लंबाई या खाली स्ट्रिंग के बारे में सोचने की ज़रूरत नहीं।
  • \n
  • प्रदर्शन: फंक्शन PHP कोर लेवल पर ऑप्टिमाइज़ किए गए हैं।
  • \n
\n\n

वेब डेवलपमेंट में रियल-लाइफ उदाहरण

\n\n

आइए देखते हैं कि ये फंक्शन व्यवहार में कहाँ काम आ सकते हैं। मैंने कुछ ऐसे परिदृश्य चुने हैं जो आपने अपने काम में ज़रूर देखे होंगे।

\n\n

1. URL प्रीफिक्स की जांच (रूटिंग, रीडायरेक्ट)

\n\n

मान लीजिए, आप एक सरल राउटर लिख रहे हैं और उन URL को हैंडल करना चाहते हैं जो /admin से शुरू होते हैं:

\n\n
<?php\n$uri = $_SERVER['REQUEST_URI'];\n\nif (str_starts_with($uri, '/admin')) {\n    echo "आप एडमिन पैनल में हैं";\n    // एडमिन कंट्रोलर लोड करें\n}                

ब्लॉग

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