تابع substr_replace در php
جایگزاری قسمتی از متن با متن دیگر
امکان حذف چند حرف از آخر یک متن یا عبارت
این تابع کاربردهای زیادی میتواند داشته باشد؛ برخلاف تابع str_replace که با جستجوی یک رشته در یک رشتهی دیگر، عمل جایگزاری را انجام میدهد، در اینجا با مشخص کردن دو عدد به عنوان نقطهی شروع و پایان، از هر کجای متن که خواستیم، میتوانیم مقداری را تغییر دهیم. تابع suibstr_replace، با ترکیب دو تابع str_replace و substr ساخته شده است.
سینتکل تابع substr_replace
1 |
substr_replace(string,replacement,start,length) |
پارامترها
- string (اجباری)
متنی که میخواهیم روی آن تغییرات را انجام دهیم. - replacement (اجباری)
عبارتی که میخواهیم جایگزین شود. - start (اجباری)
نقظهی شروع (اگر از 0 باشد از ابتدای متن خواهد بود و اگر به طرف منفی باشد از انتهای متن خواهد بود!) - length (اختیاری)
از start چقدر به جلو حرکن کنیم؟! به صورت پیشفرض تا انتهای متن میرود.
خروجی تابع
خروجی تابع از نوع string بوده و شامل متنی میباشد که تغییر یافته است.
مثال
فرض کنید میخواهیم آخرین حرف از یک کاراکتر را حذف کنیم. بنابراین به صورت زیر عمل میکنیم:
1 2 3 4 |
substr_replace('FuLLKade!', '', -1) // خروجی: // FuLLKade |
همانطور که میبینید، چون نقطهی شروع را برابر با منفی 1 قرار دادهایم، پس از انتهای متن ہیعنی آخرین حرف عبارت)، شروع شده و از آنجایی که مقدار پیشفرض length هم تا انتها است، پس علامت تعجب حذف میشود! (حذف میشود چون عبارت جایگزاری خالی است!)
حالا شاید بپرسید این مورد چه کاربردی دارد و به چه دردی میخورد! ولی صبر کنید! کاربردهای زیادی دارد! برای مثال، فرض کنید تابعی نوشتهاید که آرایهای از رشتهها را دریافت کرده و سپس تمام این رشتهها را پشت سرهم و با یک ویرگول بینشان قرار میدهد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$tests = [ 'test 1', 'test 2', 'test 3', 'test 4', 'test 5', 'test 6', 'test 7', 'test 8', 'test 9', 'test 10' ] $res = ''; foreach($test as $test) { $res .= "$test,"; } |
همانطور که میبینید، ما توسط یک حلقه، آنها را به متغیر res چسباندهایم و بعد از هر کاراکتر نیز یک ویرگول قرار دادهایم. خب اگر بخواهیم بعد از آخرین کاراکتر یک ویرگول نیفتند، میتوانیم کمی کد را پیچیده کنیم؛ ولی این کار به سادگی با substr_replace قابل انجام است!
نظرات ثبت شده بدون دیدگاه