تابع strpos در PHP

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

شکل کلی

mixed strpos ( string $string , mixed $search [, int $offset = 0 ] )

پارامترها:

  • string$ – رشته ای که باید در آن جست و جو شود.
  • search$ – رشته ای که باید در string$ جست و جو شود.
  • offset$ – محل شروع جست و جو را مشخص میکند و همانطور که قبلا توضیح داده شد میدانیم که یک پارامتر اختیاری است.

مقدار بازگشتی:

اگر رشته مورد نظر ما در رشته اصلی وجود داشته باشه مکان یا آفست(offset) اولین کاراکتر در اولین رشته پیدا شده بصورت یک عدد و در صورت پیدا نکردن رشته مقدار false رو بازگشت میده.

نکته:  در علم کامپیوتر به فاصله محل فعلی از ابتدای رشته یا شی offset گفته میشه.
نکته: اشاره گر رشته شمردن رو از عدد ۰ شروع میکنه نه ۱ ،  پس عددی که تابع برمیگردونه n-1 هست.

مثال ها

مثال اول – مثالی ساده از نحوه استفاده تابع ()strpos

<?php
 echo strpos("this is a string, this is a string too!","ring");
 #            |-----------|
 #            ۱۳ characters
?>

 توضیح کد: ما میخوایم محلی که رشته “ring” در رشته “this is a string, this is a string too!” پیدا کنیم، تو این رشته ما رشته “ring” رو دو بار داریم اما همونطور که توضیح دادیم این تابع آفست اولین کاراکتر رو در اولین رشته برمیگردونه، اولین رشته پیدا شده “ring” اول هست و اولین کاراکتر اون هم ‘r’ هست که کاراکتر ۱۳ ـُم در رشته است و باز هم گفتیم که اشاره گر از عدد ۰ شمردن رو شروع میکنه یعنی تابع عدد ۱۲ رو بازگشت میده برای حل این مشکل هممیتونید در نهایت یک واحد به نتیجه اضافه کنید.

 

مثال دوم

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

<?php
 $string='this is a string, this is a string too!';
 $search='this';
 $offset=strpos($string,$search);
 if ($offset !==false)
   die ("The position of \"$search\" in our string was " . ++$offset);
 echo "Not found!";
?>

خروجی:

The position of “this” in our string was 1.

 

اگر false==! نمیدونید چیه به قسمت عملگرهای مقایسه ای درس اپراتورها مراجعه کنید.

اگر offset$++ نمیدونید چیه به قسمت عملگرهای افزایشی و کاهشی درس اپراتورها مراجعه کنید.

 

4 دیدگاه برای «تابع strpos در PHP»

  1. سلام دوست عزیز واقعا آموزش عالی بود ممنون. خیلی دنبالش میگشتم 🙂
    اما سوالی برام پیش اومده. اگه بخوایم به جای اون کلمه دوم (یعنی کلمه ای که جستجو میشه و در مثال اول شما ring بود) یه آرایه از کلمات رو جستجو کنیم باس چیکار کنیم؟
    بذارید مشکلم رو واضح تر عرض کنم 🙂
    یه جدول دیتابیس ساختم به اسم test که شامل دو column به نام های id و wordهستش که آی دی مشخصه و word شامل کلماتیه که وارد کردم. فرض کنیم دو رکورد داریم که حروف p و a رو توی اون دوتا برای wordدر نظر گرفتم.
    حالا چطوری میتونم این دوتا رو با استفاده از این strpos توی یه متن جستجو کنم و نتیجه (true or false) رو برگردونم؟

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

به سوال زیر پاسخ بدهید *