توابع جایگزینی متن (str)- آزمون آنلاین برنامه نویسی با پی اچ پی
در این کوییز می خواهیم با هم سراغ یکی از توابع خیلی کاربردی پی اچ پی بریم که حسابی کارمون رو راحت می کنه: توابع جایگزینی متن!
حتماً تا حالا برات پیش اومده که بخوای یه بخشی از یه متن رو با یه متن دیگه جایگزین کنی. شاید بخوای کلمات بد رو فیلتر کنی، یا شاید هم آدرس های قدیمی رو توی یه متن بزرگ با آدرس های جدید عوض کنی.
خب، اینجا دقیقاً جاییه که توابع str_replace و str_ireplace میان به دادت می رسن. این دو تا مثل یه آچار فرانسه توی جعبه ابزارت هستن که همیشه به دردت می خورن.

str_replace
اول بریم سراغ str_replace. این تابع خیلی ساده و قدرتمنده. کارش اینه که یه رشته رو پیدا می کنه و با یه رشته دیگه جایگزینش می کنه.
فقط یادت باشه که این تابع به حروف بزرگ و کوچیک حساسه. یعنی اگه دنبال کلمه "Apple" بگردی، "apple" رو پیدا نمی کنه. سینتکس این تابع به این شکله:
str_replace(find, replace, string, count)
- find: این همون رشته ایه که دنبالش می گردیم.
- replace: این رشته جایگزینه که قراره به جای رشته قبلی بشینه.
- string: این همون متن اصلی ماست.
- count: (اختیاری) با استفاده از این می تونی ببینی چند بار جایگزینی انجام شده.
بیا یه مثال بزنم تا قشنگ بفهمی چی به چیه. فرض کن می خوایم کلمه "وردپرس" رو توی یه متن با "php" عوض کنیم.
$متن_اصلی = "من یک سایت وردپرسی دارم و وردپرس را دوست دارم.";
$متن_جدید = str_replace("وردپرس", "پی اچ پی", $متن_اصلی);
echo $متن_جدید;
// خروجی: من یک سایت پی اچ پی دارم و پی اچ پی را دوست دارم.
str_ireplace
خب، اگه تابع قبلی به حروف حساس بود، str_ireplace عین یه دوست باحال بی خیال عمل می کنه و به حروف بزرگ و کوچیک حساس نیست.
"i" توی اسم این تابع مخفف "insensitivity" هست. کارش دقیقاً مثل همون str_replace هست با این تفاوت که هرچی پیدا کنه، چه بزرگ باشه چه کوچیک، جایگزینش می کنه.
سینتکس این تابع هم کاملا شبیه به str_replace هست:
str_ireplace(find, replace, string, count)
بیا یه مثال دیگه بزنیم که فرقشون رو حس کنی. فرض کن دنبال "وردپرس" می گردیم اما می خوایم همه حالت هاش رو پیدا کنیم.
$متن_اصلی = "وردپرس یک CMS خوب است، و من عاشق WOrdpReSS هستم.";
$متن_جدید = str_ireplace("وردپرس", "پی اچ پی", $متن_اصلی);
echo $متن_جدید;
// خروجی: پی اچ پی یک CMS خوب است، و من عاشق پی اچ پی هستم.
مثال های کاربردی برای فهم عمیق تر
بهترین راه برای یادگیری، تمرینه. اینجا چند تا مثال آوردم که باهاشون حسابی دستت راه بیفته.
- استفاده از آرایه به جای رشته: تو می تونی به جای یه رشته، یه آرایه از کلماتی که می خوای جایگزین کنی رو به این توابع بدی. اینطوری خیلی شیک تر و سریع تر می تونی چندتا کار رو با هم انجام بدی.
$حروف_فیلتر = array("الف", "ب", "ج"); $جایگزین = array("A", "B", "C"); $متن_فیلتر_شده = str_replace($حروف_فیلتر, $جایگزین, "الف ب ج"); echo $متن_فیلتر_شده; // خروجی: A B C - حذف یک کاراکتر: اگه بخوای یه کاراکتر رو از یه متن حذف کنی، کافیه به جای رشته جایگزین، یه رشته خالی ("") قرار بدی.
$متن = "سلام, به دنیای پی اچ پی خوش آمدی!"; $متن_بدون_کاما = str_replace(",", "", $متن); echo $متن_بدون_کاما; // خروجی: سلام به دنیای پی اچ پی خوش آمدی!
با این توضیحات، دیگه هیچ ترسی از کار با این توابع نداری. حالا که با این دو تا تابع آشنا شدی، وقتشه که یه نگاهی هم به تفاوت هاشون بندازیم تا کامل برات جا بیفته.
| ویژگی | str_replace | str_ireplace |
|---|---|---|
| حساسیت به حروف | حساس (Case-sensitive) | غیر حساس (Case-insensitive) |
| سرعت | معمولا سریع تر | کمی کندتر |
| موارد استفاده | زمانی که دقت به حروف بزرگ و کوچک مهمه | زمانی که می خوای همه حالت های یک کلمه رو جایگزین کنی |
برای اینکه مطمئن بشی همه این نکات رو خوب یاد گرفتی، یه آزمون کوچک در پایان این مقاله برات آماده کردم.
این کوییز بهت کمک می کنه تا ببینی آیا می تونی این توابع رو در سناریوهای مختلف درست پیاده سازی کنی یا نه، و همچنین بهت نشون میده که چقدر در مورد کاربرد های این توابع تسلط پیدا کردی.