جایگزین کردن متن در یک رشته یا string در php
در php برای اینکه در یک رشته یا string بتوانیم یک متنی را جایگزین کنیم، می توانیم از تابع str_replace استفاده نماییم:
str_replace($current, $new, $string, $count);
این تابع چهار پارامتر می گیرد:
- پارامتر اول کلمه یا متن جاری است که باید جایگزین شود.
- پارامتر دوم مقدار جدید است که باید جایگزین پارامتر اول باشد.
- رشته فعلی
- تعداد باری که جایگزینی انجام شده است در یک متغیر در پارامتر چهارم ریخته می شود و می توانیم در ادامه از آن استفاده کنیم.
$x = 'Hello to all of all world'; $new = str_replace( 'all', 'single', $x, $count ); echo $new; echo '<br>'; echo $count; /*output: Hello to single of single world 2 */
می توانیم چند مقدار را جایگزین کنیم. پارامتر اول می تواند یک آرایه باشد. در اینصورت ما متن های موردنظرمان را به عنوان المان های آرایه وارد تابع می کنیم:
$vowels = ["a", "e", "i", "o", "u", "A", "E", "I", "O", "U"]; echo str_replace($vowels, "", "Hello World of PHP"); //output: Hll Wrld f PHP
اگر پارامتر های اول و دوم آرایه باشند، به صورت متناظر و یک به یک با هم جایگزین می شوند:
$search = ['A', 'B', 'C', 'D', 'E']; $replace = ['B', 'C', 'D', 'E', 'F']; $subject = 'A'; echo str_replace($search, $replace, $subject); //output: F
در تابع بالا ابتدا مقدار A با B عوض می شود و در نهایت رشته ما برابر B است.
سپس B با C عوض می شود و رشته ما برابر C خواهد شد.
همینطور ادامه پیدا می کند تا آخر.
یعنی یه المان ها به صورت یکجا با هم عوض نمی شوند بلکه مرحله ای تغییر می کند و هر مرحله درون رشته ریخته می شود.
مثال دیگر:
$letters = array('a', 'p'); $fruit = array('apple', 'pear'); $text = 'a p'; $output = str_replace($letters, $fruit, $text); echo $output; //output: apearpearle pear
همچنین پارامتر سوم این تابع علاوه بر string می تواند یک آرایه باشد. یعنی می خواهیم در چند string عملیات جایگزینی را انجام دهیم. در اینصورت تک تک آن رشته ها را درون پارامتر های آرایه وارد می کنیم.
دقت شود که در این حالت، خروجی ما یک آرایه خواهد بود:
$x = 'Hello mohammad'; $y = 'goodby ali'; print_r( str_replace( 'o', 'z', [$x, $y] ) ); /* output: Array ( [0] => Hellz mzhammad [1] => gzzdby ali ) */