PHP explodes splits string by a given string and returns an array. It is one of the key PHP functions to perform string manipulations. It can be used for multiple purposes by exploding input string with a boundary string.
We have already seen PHP explode() and related functions in a previous tutorial. It replaces the deprecated PHP split() function.
This article will give a quick example and more variations on PHP explode. It will cover the basic ideas and usage practices of this built-in function.
The following quick example code uses PHP explode() function on a given string. It splits the string into pieces with the white space. The code outputs the exploded pieces in a form of an array.
<?php
$employees = "David Moshe Marco Steffan Devin William";
$result = explode(" ", $employees);
//Prints array
echo "Printing PHP array:";
print "<PRE>";
print_r($result);
// Iterates array generated using PHP explode
echo "Iterating exploded array:";
foreach ($result as $value) {
echo $value . "<br/>";
}
?>
The PHP explode() syntax is below followed by the parameter description. This is one of the heavily used string functions available in PHP.
explode(string $boundaryString, string $inputString, int $limit = PHP_INT_MAX);
This function returns an array of substrings exploded from the inputString.
When the $bounsaryString is empty, then the explode() function will return value error.
Note: The PHP explode() function is binary-safe. It can process any string containing binary data also.
The function this is not binary safe ignores the rest once it finds any non-ASCII or null characters in a string. An example of a non-binary-safe function in PHP is strcoll().
The below example uses PHP explode() function by giving various input values. We will see the different behaviour of this function on receiving those inputs.
This example code passes an empty string as a separator to the PHP explode function. In this case, it returns a PHP value error.
<?php
$employees = "David Moshe Marco Steffan Devin William"
$result = explode("", $employees);
print "<PRE>";
print_r($result);
print "</PRE>";
?>
It will return the following warning message on executing explode with empty separator.
Warning: explode(): Empty delimiter in <file> on line....
When the separator is not found in the given input string, the explode() will return the input string in an array.
<?php
$employees = "David Moshe Marco Steffan Devin William";
$result = explode(":", $employees);
print "<PRE>";
print_r($result);
print "</PRE>";
?>
The returned array will have the length 1. The single array element contains the whole input string as its value.
Note: If $limit contains a negative integer, it will return an empty array in this case.
The $limit parameter of the explode() function accepts negative values also. With a negative limit, the PHP explode output an array with length substring_count - limit
.
<?php
$string = 'Hello, World!, Learn, New';
print "<pre>";
print_r(explode(', ', $string, 0));
print_r(explode(', ', $string, 2));
print_r(explode(', ', $string, 3));
print_r(explode(', ', $string, - 1));
print_r(explode(', ', $string, - 2));
?>
This section shows examples of the related PHP functions to explode a string input. Those are,
The strtok() function explodes and tokenizes the input string.
It splits a string by a regular expression. It finds the pattern on the string and breaks it into substrings. It accepts 4 parameters. The fourth parameter is the combination of the following.
This example uses a regex pattern to split the input string. We have already seen examples for PHP string extract by regex.
examples/related-functions.php
<?php
$string = ' Hello & World! & Welcome | to | learn new';
$pattern = "/[\&,|]+/";
print "<pre>";
$array = preg_split($pattern, $string);
print_r($array);
print "</pre>";
?>
This function splits the string into an array of characters. It accepts an optional $length parameter to split the string into chunks.
examples/related-functions.php
<?php
$string1 = 'Hello';
print "<pre>";
$result = str_split($string1);
print_r($result);
print "</pre>";
?>
This function splits a multi-byte string by a regex pattern.
examples/related-functions.php
<?php
$string2 = 'Welcome David!';
$pattern = "\s";
print "<pre>";
$result = mb_split($pattern, $string2);
print_r($result);
print "</pre>";
?>
This function tokenizes the input string with the given delimiter. It requires the input string for the first time only. In the subsequent calls, it continues tokenization by tracking the delimiter’s position.
<?php
$string3 = "Owl-Parrot-Fox-Crane";
$delimiter = "-";
$token = strtok($string3, $delimiter);
while ($token !== false) {
echo $token . "\n";
$token = strtok($delimiter);
}
?>
This code outputs the tokenized substring in each iteration. It removes the hyphen(-) from the input string and explodes it into tokens.
PHP explode() is not only for handling strings. It is used in an effective way while creating web applications.
You may see some web forms asking to enter more data with a comma or space separation. In such cases, the PHP explode will help to parse the combo to break it into pieces.
For example, the form fields listed below accept more options.
Let us see some of those examples below to use in a web application.
This code applies PHP explode to a comma-separated string. This input string contains country names. The explode will return an array of countries from the input string.
Then this code iterates the output array and loads the options to a HTML dropdown. Once we have seen how to load country-state dropdown from the database.
examples/explode-and-add-to-dropdown.php
<?php
$countries = "Germany,United Kingdom,France,Spain,United States";
$result = explode(",", $countries);
?>
<html>
<head>
<title>PHP-Explode and add to dropdown</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="./../assets/css/style.css" />
</head>
<body>
<div class="container">
<h4>Explode and add to dropdown</h4>
<div class="row">
<div class="label">Select Country</div>
<select class="input-select" name="country">
<option value="">Select</option>
<?php foreach($result as $country){?>
<option value="<?php echo $country;?>"><?php echo $country;?></option>
<?php }?>
</select>
</div>
</div>
</body>
</html>
This example generates a username automatically from the given email. It gets the email from the user via a HTML form.
It applies PHP explode on the entered email with respect to the separator ‘@’. The explode returns an array with length 2. The first element is taken as the username. The second element holds the domain name.
examples/generate-username.php
<?php
if (! empty($_POST["submit"])) {
if (! empty($_POST["email"])) {
$string = $_POST["email"];
$result = explode("@", $string, - 1);
}
}
?>
<html>
<head>
<title>PHP-Generate username</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="./../assets/css/style.css" />
</head>
<body>
<div class="container">
<h4>Generate username</h4>
<form action="" method="post">
<div class="row">
<div class="label">Enter Email</div>
<input type="text" name="email" class="input">
</div>
<div class="row">
<input type="submit" value="Submit" class="btn-submit"
name="submit">
</div>
<div class="row">
<?php
if (! empty($result)) {
echo "<strong>Username :</strong> " . $result[0];
}
?>
</div>
</form>
</div>
</body>
</html>
This example code gets the comma-separated values from the user. The form field allows entering the languages known by the user.
On submit, the form posts the user data to the PHP. It explodes the posted data using PHP explode() function.
The output will be printed after exploding the data. This example prints the iterated language array elements below the form.
examples/get-languages-known.php
<?php
if (! empty($_POST["submit"])) {
if (! empty($_POST["languages"])) {
$languages = $_POST["languages"];
$result = explode(",", $languages);
}
}
?>
<html>
<head>
<title>PHP-Get languages known</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="./../assets/css/style.css" />
</head>
<body>
<div class="container">
<h4>Explode user input languages known</h4>
<form action="" method="post">
<div class="row">
<div class="label">Enter Languages <span class="note">(Enter comma-separated):</span></div>
<input type="text" name="languages" class="input">
</div>
<div class="row">
<input type="submit" value="Submit" class="btn-submit"
name="submit">
</div>
<div class="row">
<?php if(!empty($result)){?>
<div class="label font-bold">Languages known :</div>
<?php foreach($result as $language){?>
<div class="explode"> <?php echo $language;?></div><?php } }?>
</div>
</form>
</div>
</body>
</html>
The below screenshot shows the file structure of the PHP explode example. On a landing page, it has the navigation to see the output of each explode example.
We have seen the basic idea on the PHP explode() function. Also, we saw the related PHP functions used for exploding strings.
All the above PHP explode examples will help to understand the usage practice. Also, it will guide you on how and where to use the PHP explode.
so helpfull like everytime from you than you so much teacher Vincy
Thank you Redouane Sehbani.