تابع Explode و Implode در PHP برای کار با رشته ها و آرایه استفاده می شود و همانطور که می دانید زبان جاوا اسکریپت (JavaScript) برای تغییر رشته ها تابعی به نام Split دارد که گفته می شود تابع Split ای که در زبان php موجود هست برگرفته از جاوا اسکریپت می باشد . البته از ورژن php 5.3 به بعد تابع Split به کل از رده خارج شده و در ورژن ۷ کامل حذف شده است . پس شما باید به جای این تابع از تابع explode استفاده نمایید .
همانند تابع split در جاوا اسکریپت , تابع explode یک رشته را دریافت می کند و بر اساس یک جدا کننده (delimiter) این رشته را به قسمت های مختلف تقسیم کرده و داخل خانه های آرایه قرار می دهد .
تابع explode و implode برای جداسازی رشته های یک آرایه یا افزودن عناصر به خانه های آرایه بصورت رشته (string) استفاده می شود.
Explode
تابع explode() رشته متنی را شکسته و هر جز آن را داخل یک خانه از آرایه قرار می دهد . این تابع سه تا ورودی می گیرد . اول از همه جدا کننده ای که باید از آنجا رشته شکسته شود ، دومی متنی که قرار است آن را به قسمت های مختلف تقسیم کنیم ، سومی که اجباری نیست و فقط به تابع تعداد خانه هایی که قرار است return شود را تعیین می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php $string_to_explode = 'this-string-needs-some-exploding'; //Break string into an array $exploded_string = explode('-', $string_to_explode); print_r($exploded_string); //output : // Array ( [0] => this [1] => string [2] => needs [3] => some [4] => exploding ) echo $exploded_string[0]; echo $exploded_string[1]; ?> |
همچنین explode میتواند مثل ابزار خط فرمان linux بنام grep به منظور پیدا کردن چیزهای مشخص در string توسط تجزیه اجزایی که مورد استفاده نیستند استفاده شود
Implode
برخلاف تابع explode() ، implode() مقادیر آرایه را به صورت رشته نمایش می دهد و دوتا وروری می گیرد . اولی جدا کننده ای که مشخص می کند بین خانه های آرایه چه کاراکتری قرار میگیرد و دومی ورودی آرایه است.
1 2 3 4 5 6 7 8 |
<?php //array values $array_value = array('eat','sleep','walk','read','write','watch','move'); //join all array values with "-" hyphen //output : eat-sleep-walk-read-write-watch-move echo implode('-', $array_value); ?> |
تابع Explode و Implode ار توابع بسیار کاربردی در زبان PHP است که می توانید برای خواندن و افزودن رشته ها داخل آرایه به حای حلقه ها استفاده کنید و زمان زیادی را ذخیره کنید !
امیدوارم مورد قبول شما دوستان بوده باشد . موفق باشید
با سلام!
ممکنه Explode دوتا جدا کننده بگیره مثلا (x$,” “.” “)Explode اگرم هم نمیشه چطور میشه اینکارو با روش دیگه انجام داد
سلام
function multiexplode ($delimiters,$string) {
$ready = str_replace($delimiters, $delimiters[0], $string);
$launch = explode($delimiters[0], $ready);
return $launch;
}
پارامتر اول که جدا کننده هست رو بصورت آرایه ای وارد کنید
با سلام!
وقتی کد رو وارد میکنم این ارورو میده
Notice: Array to string conversion in C:\xampp\htdocs\jarvis\test\index.php on line 101
Array
الان چه کنم؟
سلام. از آرایه باید داخل implode استفاده کنید و explode فقط رشته را دریافت و به آرایه تبدیل می کند
سلام من این کدو وارد کرد ولی باز ارور میده
$ek = “hello”;
$delimiters = array(” “,”\n”);
function multiexplode ($delimiters,$ek) {
$ready = str_replace($delimiters, $delimiters[0], $ek);
$launch = explode($delimiters[0], $ready);
return $launch;
}
echo multiexplode($delimiters,$ek);