Note that an empty input string will still result in one element in the output array. This is something to remember when you are processing unknown input.
For example, maybe you are splitting part of a URI by forward slashes (like "articles/42/show" => ["articles", "42", "show"]). And maybe you expect that an empty URI will result in an empty array ("" => []). Instead, it will contain one element, with an empty string:
<?php
$uri = '';
$parts = explode('/', $uri);
var_dump($parts);
?>
Will output:
array(1) {
[0]=>
string(0) ""
}
And not:
array(0) {
}explode
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
explode
Референца за `function.explode.php` со подобрена типографија и навигација.
explode
(PHP 4, PHP 5, PHP 7, PHP 8)
explode — Подели стринг со стринг
= NULL
Враќа низа од стрингови, од кои секој е подстринг од
string формиран со делење на граници формирани од стринг separator.
Параметри
separator-
Граница стринг.
string-
, и враќа стринг со првиот карактер од
limit-
Враќа
limitе поставен и позитивен, вратената низа ќе содржи максимум одlimitелементи со последниот елемент што го содржи остатокот одstring.Ако
limitпараметарот е негативен, сите компоненти освен последниот -limitсе враќаат.Ако
limitпараметарот е нула, тогаш ова се третира како 1.
Забелешка:
Пред PHP 8.0, implode() ги прифаќаше своите параметри во која било нарачка. explode() никогаш не го поддржувал ова: мора да се осигурате дека
separatorаргументот доаѓа предstringargument.
Вратени вредности
Враќа array of stringите создадени со делење на string параметар на граници формирани од separator.
Враќа separator е празен string (""),
explode() фрла ValueError. Ако separator содржи вредност што не е содржана во string и негативен
limit се користи, тогаш празен array ќе биде вратен, инаку а array containing
string ќе биде вратено. Ако separator
вредностите се појавуваат на почетокот или крајот на string, споменатите вредности ќе бидат додадени како празна array вредност или на првата или на последната позиција на вратеното array respectively.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
explode() сега ќе фрли ValueError
when separator параметарот е даден како празен стринг (""). Претходно, explode() returned false instead.
|
Примери
Пример #1 explode() examples
<?php
// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0], PHP_EOL; // piece1
echo $pieces[1], PHP_EOL; // piece2
// Example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user, PHP_EOL; // foo
echo $pass, PHP_EOL; // *
?>
Пример #2 explode() примери за враќање
<?php
/*
A string that doesn't contain the delimiter will simply
return a one-length array of the original string.
*/
$input1 = "hello";
$input2 = "hello,there";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
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';
// positive limit
print_r(explode('|', $str, 2));
// negative limit
print_r(explode('|', $str, -1));
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
Array
(
[0] => one
[1] => two|three|four
)
Array
(
[0] => one
[1] => two
[2] => three
)
Белешки
Забелешка: Пример #4 Користење на контексти на потоци
Види Исто така
- preg_split() - Подели стринг по регуларен израз
- str_split() - Претвори стринг во низа
- mb_split() - Подели стринг со повеќе бајти користејќи регуларен израз
- str_word_count() - Врати информации за зборовите што се користат во стринг
- strtok() - Токенизирај стринг
- implode() - Спој елементи од низа со стринг
Белешки од корисници 4 белешки
If your data is smaller than the expected count with the list expansion:
<?php
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell,$nu) = explode(":", $data);
?>
The result is a warning not an error:
PHP Warning: Undefined array key 7 in ...
The solution is to pad the array to the expected length:
<?php
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell,$nu) = array_pad( explode(":", $data), 8, "");
// where 8 is the count of the list arguments
?>Be careful, while most non-alphanumeric data types as input strings return an array with an empty string when used with a valid separator, true returns an array with the string "1"!
var_dump(explode(',', null)); //array(1) { [0]=> string(0) "" }
var_dump(explode(',', false)); //array(1) { [0]=> string(0) "" }
var_dump(explode(',', true)); //array(1) { [0]=> string(1) "1" }If you want to directly take a specific value without having to store it in another variable, you can implement the following:
$status = 'Missing-1';
echo $status_only = explode('-', $status)[0];
// Missing