الدالة explode() في PHP
الوصف
array explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX ])
تُعيد الدالة explode()
مصفوفةً من السلاسل النصية، كل سلسة نصية هي تجزئة للسلسلة النصية الكلية (المُدخَلة) string
، وذلك عبر تقسيمها عند محدد السلسلة delimiter
.
المعاملات
delimiter
محدد السلسلة، وهو المحرف الذي ستُقسَّم السلسلة النصية عنده.
string
السلسلة النصية المُدخَلة المُرَاد تجزئتها.
limit
إذا كانت قيمة المعامل limit
موجبةً، فإن المصفوفة المُعادة ستحتوي على عناصر بعدد limit
، مع احتواء آخر عنصر في المصفوفة على بقية السلسلة النصية.
إذا كانت قيمة المعامل limit
سالبةً، فإن المصفوفة المعادة ستحتوي على كل محارف السلسلة النصية ما عدا آخر -limit
عنصر.
أما إن كانت قيمة المعامل limit
تساوي الصفر فيُتَعَامَل معها على أنها تساوي 1
.
ملاحظة: على الرغم من قبول الدالة implode()
المعاملات في أي ترتيب كانت (لأسباب تاريخية)، إلا أن الدالة explode()
لا يمكنها ذلك. احرص أن يسبق المعاملُ delimiter
في الترتيب المعاملَ string
.
القيم المعادة
تُعيد الدالة explode()
مصفوفةً من السلاسل النصية بعد تقسيم المعامل string
باستعمال الحدود المعينة بالمعامل delimiter
. تعيد الدالة explode()
القيمة FALSE
إذا كان المعامل delimiter
سلسلة نصية فارغة (""
)، وتُعيد سلسلة نصية فارغة في حال ما إذا كانت قيمة المعامل delimiter
غير موجودة في السلسلة النصية وقيمة المعامل limit
سالبة. بخلاف ذلك، تعيد الدالة explode()
مصفوفةً تحتوي على السلسلة النصية.
سجل التغييرات
الإصدار | الوصف |
---|---|
5.1.0 | إضافة دعم القيم السالبة للمعامل limit
|
أمثلة
المثال 1: مثال بسيط عن الدالة explode()
<?php
// المثال الأول
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
// المثال الثاني
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>
المثال 2: مثال عن القيم المُعادة للدالة explode()
<?php
$input1 = "hello";
$input2 = "hello,there";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );
?>
يُخرِج المثال السابق الناتج التالي:
array(1)
(
[0] => string(5) "hello"
)
array(2)
(
[0] => string(5) "hello"
[1] => string(5) "there"
)
array(2)
(
[0] => string(0) ""
[1] => string(0) ""
)
المثال 3: مثال عن قيم المعامل limit
<?php
$str = 'one|two|three|four';
// قيمة المعامل limit موجبة
print_r(explode('|', $str, 2));
// قيمة المعامل سالبة (بدءًا من الإصدار 5.1 من اللغة)
print_r(explode('|', $str, -1));
?>
يُخرِج المثال السابق المخرجات الآتية:
Array
(
[0] => one
[1] => two|three|four
)
Array
(
[0] => one
[1] => two
[2] => three
)
ملاحظة: تعدّ الدالة explode()
آمنة ثنائيًا (binary-safe، أي يمكن استخدامها على البيانات الممثلة في النظام الثنائي).
انظر أيضًا
preg_split()
: تجزئة السلسلة النصية بواسطة التعابير النمطية (regular expressions).str_split()
: تحويل سلسلة نصية إلى جدول بيانات.mb_split()
: تجزئة عدة سلاسل نصية بواسطة التعابير النمطية (regular expressions).str_word_count()
: إعادة معلومات حول كلمات السلسلة النصية.strtok()
: تجزئة السلسلة النصية.implode()
: جمع عناصر مصفوفة لتشكِّل سلسلة نصية واحدة.