Real Time Web Analytics پرسش و پاسخ Elam

PHP

تابع strpos در PHP چه کار می کند؟

نویسنده : کامران جعفری
تاریخ انتشار:
09:24:36 1394-09-24
تابع strpos به منظور یافتن رشته خاصی در رشته دیگری در PHP مورد استفاده قرار می گیرد.

یافتن یک عبارت در یک رشته در PHP، نیازی است که بارها با آن روبرو می شوید. تابع strpos به شما امکانات خوبی برا یرفع  این نیاز ارائه می کند. برای بررسی تابع strpos، با این مقاله لرن روت همراه باشید.

در ابتدا بهتر است تا با امضای تابع strpos آشنا شویم:

strpos($phrase,$search,$start);

همانطور که ملاحظه می شود، تابع strpos، در اولین پارامتر خود عبارتی که قرار است جستجو در آن انجام شود را دریافت می کند. پارامتر دوم عبارتی است که به دنبال یافتن آن در عبارت مورد جستجو هستیم. پارامتر سوم که یک پارامتر اختیاری است، شروع اندیس جستجو را مشخص می کند. مقدار پیشفرض پارامتر سوم 0 است و این یعنی اینکه جستجو از ابتدای رشته مورد نظر شروع شود. اگر شما هر عددی به عنوان پارامتر سوم ارسال کنید، جستجو در رشته مورد نظر از آنجا شروع خواهد شد. توجه داشته باشید که اندیس شروع جستجو 0 می باشد.
مقدار بازگشتی تابع strpos، اندیس اولین رخداد مقدار مورد جستجو است. برای درک بهتر تابع strpos، به مثال های زیر توجه کنید:

strpos("this is an example from learnroute","example");

قبل از بررسی مقدار بازگشت داده شده مثال فوق بهتر است این نکته را یادآور شویم که تابع strpos یک تابع Case - Sensitive است. این بدان معنی است که کوچک و بزرگ بودن حروف در بررسی تاثیرگذار است.  پس از ذکر این نکته به بررسی مقدار بازگشتی مثال فوق می پردازیم. در مثال فوق، تابع strpos، مقدار محل اولین رخداد "example" را در رشته "this is an example from learnroute" باز می گرداند. با توجه به محل "example" در رشته مورد نظر، مقدار بازگشتی عدد 11 می باشد. دقت کنید که فضاهای خالی نیز در شمارش اندیس ها محاسبه می شوند. به مثال بعدی توجه کنید:

strpos("hello world","l",5);

دراین مثال ما به دنبال اولین رخداد حرف "l" در رشته فوق و از اندیس 5ام به بعد هستیم. در این شرایط دو حرف "l" موجود در "hello" در نظر گرفته نمی شوند زیرا در اندیس های 2 و 3 قرار دارند. بنابراین مقدار بازگشتی تابع فوق 9 خواهد بود.

در صورتی که رخدادی متناسب با عبارت مورد جستجو یافت نشود، مقدار بازگشتی تابع false خواهد بود. توجه داشته باشید که در صورت رخداد عبارت مورد جستجو در اولین اندیس عبارت اصلی، مقدار بازگشتی 0 خواهد بود و این به معنای یافت عبارت مورد جستجو در اولین اندیس عبارت اصلی است نه به معنای عدم یافت عبارت مورد جستجو. به مثال های زیر توجه کنید:

strpos("this is an example from learnroute","Learnroute");

نتیجه false خواهد بود زیرا حرف "L" بصورت بزرگ نوشته شده و مطابقتی با "learnroute" ندارد.

strpos("this is an example from learnroute","this");

نتیجه 0 خواهد بود و این به معنای این است که عبارت مورد جستجو در اولین اندیس عبارت اصلی قرار گرفته است.

برچسب ها:
مقالات مشابه