PHP में स्ट्रिंग की शुरुआत जांचें: substr से str_starts_with तक

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

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

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

«इस जगह से थोड़ा विस्तार से»: PHP में कैसे पता करें कि स्ट्रिंग किससे शुरू होती है?

\n\n

हर डेवलपर को कभी न कभी इस समस्या का सामना करना पड़ता है: «क्या यह स्ट्रिंग किसी खास शब्द, कैरेक्टर या प्रीफिक्स से शुरू होती है?» यह एक छोटी सी बात लगती है, लेकिन इस पर रूटिंग का लॉजिक, URL की जांच, ईमेल वैलिडेशन या यूज़र इनपुट का विश्लेषण निर्भर हो सकता है। PHP में, किसी भी अन्य भाषा की तरह, इस समस्या को हल करने के कई तरीके हैं। लेकिन कौन सा तरीका सही है? और कौन सा सबसे तेज़ है? और अगर आपके पास PHP का पुराना वर्ज़न है तो क्या करें?

\n\n

इस आर्टिकल में हम PHP में स्ट्रिंग की शुरुआत जांचने के सभी लोकप्रिय तरीकों पर चर्चा करेंगे, substr और strpos जैसी क्लासिक विधियों से लेकर PHP 8.0 में आए आधुनिक str_starts_with तक। आप सिर्फ «कैसे» नहीं, बल्कि «क्यों» भी सीखेंगे कि किसी खास तरीके को क्यों चुनना चाहिए। चलिए शुरू करते हैं! 🚀

\n\n

स्ट्रिंग की शुरुआत क्यों जांचें?

\n\n

कल्पना करें कि आप एक लॉग पार्सर लिख रहे हैं, URL प्रोसेस कर रहे हैं, या फ़ाइलों को एक्सटेंशन के आधार पर फ़िल्टर कर रहे हैं। या हो सकता है कि आपको उन सभी ईमेल पतों को अलग करना हो जो «admin@» से शुरू होते हैं। या यह जांचना हो कि API अनुरोध सही प्रीफिक्स के साथ आया है या नहीं। इन सभी मामलों में आपको एक ही चीज़ चाहिए: यह पता लगाना कि क्या स्ट्रिंग में दी गई सबस्ट्रिंग शुरुआत में मौजूद है।

\n\n

यह एक सामान्य काम लगता है, लेकिन बारीकियों को न जानने से ऐसे बग हो सकते हैं जिन्हें पकड़ना मुश्किल होगा। खासकर अगर आप false की जांच किए बिना strpos का उपयोग करते हैं। आइए प्रत्येक विधि को क्रम से समझते हैं।

\n\n

विधि #1: str_starts_with (PHP 8.0+) — आधुनिक और स्पष्ट

\n\n

PHP 8.0 से शुरू करके, भाषा में एक विशेष फंक्शन str_starts_with() जोड़ा गया है। यह बिल्कुल वही करता है जो इसके नाम से पता चलता है: यह जांचता है कि स्ट्रिंग दी गई सबस्ट्रिंग से शुरू होती है या नहीं। और यह इसे तेज़ी से, पढ़ने में आसान तरीके से और बिना किसी समस्या के करता है।

\n\n
<?php\n$url = "https://pythonlib.ru";\nif (str_starts_with($url, "https://")) {\n    echo "स्ट्रिंग https:// से शुरू होती है";\n} else {\n    echo "स्ट्रिंग https:// से शुरू नहीं होती";\n}\n// आउटपुट: स्ट्रिंग https:// से शुरू होती है\n?>
\n\n

यह क्यों बेहतरीन है?

\n
    \n
  • ✅ कोड सामान्य अंग्रेज़ी टेक्स्ट की तरह पढ़ा जाता है: «string starts with»।
  • \n
  • ✅ केवल true या false लौटाता है — कोई अतिरिक्त जांच नहीं।
  • \n
  • ✅ मल्टीबाइट एन्कोडिंग (UTF-8) के साथ सही ढंग से काम करता है।
  • \n
  • ✅ केस-सेंसिटिव है। अगर बिना केस के जांचना है, तो str_starts_with(strtolower(...)) का उपयोग करें।
  • \n
\n\n

यह विधि निस्संदेह सबसे अच्छी है, अगर आपके पास PHP 8.0 या उससे ऊपर का वर्ज़न है। लेकिन क्या होगा अगर आपका प्रोजेक्ट अभी भी PHP 7 पर चल रहा है? आगे पढ़ें।

\n\n

विधि #2: substr — पुराना दोस्त नए दोस्तों से बेहतर

\n\n

str_starts_with के आने से पहले, कई लोग स्ट्रिंग की शुरुआत की तुलना करने के लिए substr का उपयोग करते थे। विचार सरल है: स्ट्रिंग से आवश्यक लंबाई का एक टुकड़ा काटें और उसकी तुलना वांछित सबस्ट्रिंग से करें।

\n\n
<?php\n$string = "Hello, world!";\n$prefix = "Hello";\n\nif (substr($string, 0, strlen($prefix)) === $prefix) {\n    echo "स्ट्रिंग 'Hello' से शुरू होती है";\n} else {\n    echo "स्ट्रिंग 'Hello' से शुरू नहीं होती";\n}\n?>
\n\n

फायदे:

\n
    \n
  • PHP के किसी भी वर्ज़न पर काम करता है।
  • \n
  • समझने में आसान लॉजिक।
  • \n
\n

नुकसान:

\n
    \n
  • strlen() का ध्यान रखना पड़ता है — लंबाई में गलती करना आसान है।
  • \n
  • अगर स्ट्रिंग प्रीफिक्स से छोटी है, तो substr एक खाली स्ट्रिंग लौटाएगा, और तुलना विफल हो जाएगी (लेकिन क्रैश नहीं होगा)।
  • \n
  • आधुनिक विकल्प की तुलना में कम पढ़ने योग्य।
  • \n
\n\n

फिर भी, यह पूरी तरह से काम करने वाला विकल्प है जो आपको निराश नहीं करेगा। बस सख्त तुलना === का उपयोग करना न भूलें।

\n\n

विधि #3: strpos — चालाक लेकिन खतरनाक

\n\n

एक और क्लासिक तरीका है strpos() का उपयोग करना। यह फंक्शन सबस्ट्रिंग की पहली घटना खोजता है

ब्लॉग

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