str_split 


string apg

CONVERT a particular STRING to an ARRAY.





If the optional $split_length is specified, the returned array will be broken down into chunks with each being $split_length in length, otherwise each chunk will be one character in length.

If $split_length < 1, this function returns FALSE with an additional WARNING error.

If $split_length is greater than $string the entire STRING is returned as an ARRAY of a single element.



<?php

arr str_split 
str $string [, int $split_length ] )


where,

$string The input STRING to convert to

$split_length 
The maximum length of the chunk

?>

$string


The input STRING to convert to ARRAY.



$split_length


The maximum length of the each chunk.



  1 EXERCISE   

<?php

$strspl01 
'ALEA JACTA EST';

$chunk01 5
// MAXIMUM, 5 CHARACTERS for each chunk

$arrspl01 str_split($strspl01$chunk01);

foreach(
$arrspl01 as $spl01 => $sp01)
{
    echo 
$spl01 ' => ' $sp01 '<br><br>';
}

echo 
'<pre>';
var_dump($arrspl01);
echo 
'</pre>';

?>

  2 EXERCISE   

<?php

$strspl02 
'ALEA JACTA EST';

$chunk02 1
// MAXIMUM, 1 CHARACTER for each chunk

$arrspl02 str_split($strspl02$chunk02);

foreach(
$arrspl02 as $spl02 => $sp02)
{
    echo 
$spl02 ' => ' $sp02 '<br>';
}

echo 
'<pre>'
var_dump($arrspl02);
echo 
'</pre>'

?>

  3 EXERCISE   

<?php

$strspl03 
'ALEA JACTA EST';

$chunk03 20
// This value exceeds the length
// of the STRING to check

$arrspl03 str_split($strspl03$chunk03);

foreach(
$arrspl03 as $spl03 => $sp03)
{
    echo 
$spl03 ' =>' $sp03 '<br>';
}

echo 
'<pre>'
var_dump($arrspl03);
echo 
'</pre>';  

?>

  4 EXERCISE   

<?php

$strspl04 
'ALEA JACTA EST';

$chunk04 = -20
// This value is certainly less than 1

$arrspl04 str_split($strspl04$chunk04);

foreach(
$arrspl04 as $spl04 => $sp04)
{
    echo 
$spl04 ' => ' $sp04 '<br>';
}

echo 
'<pre>'
var_dump($arrspl04);
echo 
'</pre>';   

?>

  5 EXERCISE   

<?php

echo "Testing str_split() : basic functionality.<br>";

// Initialise all required variables
$str 'This is basic testcase';
$split_length 5;

echo 
"Given string:<br>$str<br><br>";

// Calling str_split() with all possible arguments
echo "<br><br>With all possible arguments:<br><pre>";
var_dumpstr_split($str,$split_length) );

// Calling str_split() with default arguments
echo "</pre><br><br>With split_length as default argument:<br><pre>";
var_dumpstr_split($str) );
echo 
"</pre>";

?>

  6 EXERCISE   

<?php

/*
 * passing different double quoted 
 * strings as 'str' argument to str_split()
 * split_length is set to 7
*/

echo "Testing str_split() : double quoted strings for 'str'.<br><br>";

//Initialize variables
$split_length 7;

// different values for 'str'
$values = [
  
"",
  
//empty
  
" "
  
//space
  
"1234",
  
//with only numbers
  
"simple string",
  
//regular string
  
"It's string with quote",
  
//string containing single quote
  
"string\tcontains\rwhite space\nchars",
  
"containing @ # $ % ^ & chars",
  
"with 1234 numbers",
  
"with \0 and ".chr(0)."null chars",
  
//for binary safe
  
"with    multiple     space char",
  
"Testing invalid \k and \m escape char",
  
"to check with \\n and \\t"
  
//ignoring \n and \t results
];

echo 
"Given:<br>";

var_dump($values);

echo 
'<br><br>';

// loop through each element of 
// $values for 'str' argument
for($count 0$count count($values); $count++) {
  echo 
"<br><br>Iteration: ".($count+1)."<br>";
  echo 
"After:<br>str_split('$values[$count]', $split_length)<br>";
  
var_dumpstr_split($values[$count], $split_length) );
  echo 
'<br>';
}

?>

  7 EXERCISE   

<?php

/*
 * passing different single quoted strings 
 * as 'str' argument to str_split()
 * split_length is set to 5
*/

echo "Testing str_split() : single quoted strings for 'str'.<br><br>";

//Initialize variables
$split_length 5;

// different values for 'str'
$values = array(
  
'',  
  
//empty
  
' ',  
  
//space
  
'1234'
  
//with only numbers
  
'simple string',  
  
//regular string
  
'It\'s string with quote',  
  
//string containing single quote
  
'string\tcontains\rwhite space\nchars',
  
'containing @ # $ % ^ & chars',
  
'with 1234 numbers',
  
'with \0 and ".chr(0)."null chars',  
  
//for binary safe
  
'with    multiple     space char',
  
'Testing invalid \k and \m escape char',
  
'to check with \\n and \\t' 
  
//ignoring \n and \t results
);

echo 
"Given:<br>";

foreach(
$values as $k => $v)
echo 
"[ $k ] => \"$v\"<br>";


// loop through each element of 
// $values for 'str' argument
for($count 0$count count($values); $count++) {
  echo 
"<br><br><br>Iteration: ".($count+1)."<br>";
  echo 
"After:<br>str_split('$values[$count]', $split_length)<br>";
  
var_dumpstr_split($values[$count], $split_length) );
}

?>

  8 EXERCISE   

<?php

/*
 * Passing different heredoc strings 
 * as 'str' argument to the str_split()
 * with 'split_length' 10
*/

echo "Testing str_split() : heredoc strings as 'str' argument.<br>";

// Initializing required variables
$split_length 10;

// Null heredoc string
$heredoc_null = <<<EOT1
EOT1;

// heredoc string with single character
$heredoc_char = <<<EOT2
a
EOT2;

// simple heredoc string
$heredoc_str = <<<EOT3
This is simple heredoc string
EOT3;

// heredoc with special characters
$heredoc_spchar = <<<EOT4
This checks heredoc with $, %, &, chars
EOT4;

// blank heredoc string
$heredoc_blank = <<<EOT5

EOT5;

// heredoc with different white space characters
$heredoc_escchar = <<<EOT6
This checks\t str_split()\nEscape\rchars
EOT6;

// heredoc with multiline
$heredoc_multiline= <<<EOT7
This is to check str_split
function with multiline
heredoc
EOT7;

// heredoc with quotes and slashes
$heredoc_quote_slash = <<<EOT8
"To check " in heredoc"
I'm sure it'll work also with \
which is single slash
EOT8;

//different heredoc strings for 'str'
$heredoc_array = array(
  
$heredoc_null,
  
$heredoc_blank,
  
$heredoc_char,
  
$heredoc_str,
  
$heredoc_multiline,
  
$heredoc_spchar,
  
$heredoc_escchar,
  
$heredoc_quote_slash
);


// loop through each element of 
// the 'heredoc_array' for 'str'
$count 0;
foreach(
$heredoc_array as $str) {
  echo 
"<br><br>Iteration: ".($count+1). "<br>";
  echo 
"<br>str_split('$str', $split_length):<br><br>";
  
var_dumpstr_split($str$split_length) );
  
$count++;
};

?>

  9 EXERCISE   

<?php

/*
 * passing different integer values 
 * for 'split_length' argument to str_split()
*/

echo "Testing str_split() : 
               different integer values for 'split_length'.<br>"
;
               
//Initialise variables
$str 'This is a string with 123 & escape char \t';

//different values for 'split_length'
$values = [
  
0,
  
1,
  -
123,  //negative integer
  
0234,  //octal number
  
0x1A,  //hexadecimal number
  
2147483647,  //max positive integer number
  
-2147483648,  //min negative integer
];

//loop through each element of $values for 'split_length'
for($count 0$count count($values); $count++) {
    echo 
"<br><br>Iteration: ".($count 1)."<br>";

    try {
        
var_dumpstr_split($str$values[$count]) );
    } catch (
\ValueError $e) {
        echo 
$e->getMessage() . "<br>";
    }
}

?>

  10 EXERCISE   

<?php

/*
 * passing different integer values 
 * for 'split_length' and heredoc string 
 * as 'str' argument to str_split()
*/

echo "Testing str_split() : 
          different integer values for 
                    'split_length' with 
                           heredoc 'str'.<br>"
;
//Initialise variables
$str = <<<EOT
string with 123,escape char \t.
EOT;

//different values for 'split_length'
$values = array (
  
0,
  
1,
  -
123,  //negative integer
  
0234,  //octal number
  
0x1A,  //hexadecimal number
  
2147483647,  //max positive integer number
  
-2147483648,  //min negative integer
);

// loop through each element 
// of $values for 'split_length'
for($count 0$count count($values); $count++) {
    echo 
"<br><br>Iteration: ".($count 1)."<br>";

    try {
        
var_dumpstr_split($str$values[$count]) );
    } catch (
\ValueError $e) {
        echo 
$e->getMessage() . "<br>";
    }
}

?>