spliti
(PHP 4 >= 4.0.1, PHP 5)
spliti — Split string into array by regular expression case insensitive
Description
$pattern
, string $string
[, int $limit
= -1
] )
Splits a string
into array by regular expression.
This function is identical to split() except that this ignores case distinction when matching alphabetic characters.
This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
Parameters
-
pattern
-
Case insensitive regular expression.
If you want to split on any of the characters which are considered special by regular expressions, you'll need to escape them first. If you think spliti() (or any other regex function, for that matter) is doing something weird, please read the file regex.7, included in the regex/ subdirectory of the PHP distribution. It's in manpage format, so you'll want to do something along the lines of man /usr/local/src/regex/regex.7 in order to read it.
-
string
-
The input string.
-
limit
-
If
limit
is set, the returned array will contain a maximum oflimit
elements with the last element containing the whole rest ofstring
.
Return Values
Returns an array of strings, each of which is a substring of
string
formed by splitting it on boundaries formed
by the case insensitive regular expression pattern
.
If there are n occurrences of
pattern
, the returned array will contain
n+1 items. For example, if
there is no occurrence of pattern
, an array with
only one element will be returned. Of course, this is also true if
string
is empty. If an error occurs,
spliti() returns FALSE
.
Examples
This example splits a string using 'a' as the separator :
Example #1 spliti() example
<?php
$string = "aBBBaCCCADDDaEEEaGGGA";
$chunks = spliti ("a", $string, 5);
print_r($chunks);
?>
The above example will output:
Array ( [0] => [1] => BBB [2] => CCC [3] => DDD [4] => EEEaGGGA )
Notes
Note:
As of PHP 5.3.0, the regex extension is deprecated in favor of the PCRE extension. Calling this function will issue an
E_DEPRECATED
notice. See the list of differences for help on converting to PCRE.
spliti() is deprecated as of PHP 5.3.0. preg_split()
with the i (PCRE_CASELESS
) modifier is the suggested alternative.
See Also
- preg_split() - Split string by a regular expression
- split() - Split string into array by regular expression
- explode() - Split a string by string
- implode() - Join array elements with a string
Коментарии
To split $cartes which contains data and tabulations:
Doesnt work :
$tab_cartes = split("\\t",$cartes );
But \t = char(9), so, works well:
$tab_cartes = split(Chr(9),$cartes);
Idem for :
\n = char(10)
\r = char(13)
Found in http://www.asp-magazine.com/fr/asp/blitz/blitz4.asp
When using special characters such as the tab placeholder "\t" in the split function, be careful not to escape the slash by adding a slah in front of it. To signify a tab, new line or carriage return use only one slash in front of the character. For example:
$cartes= "one\ttwo\tthree";
$tab_cartes = split("\t",$cartes );
$items = count($tab_cartes);
for ($x = 0; $x < $items; $x++)
{ echo $tab_cartes[$x] . "\n"; }
This example shows the use of spliti.
Here it splits the path of the server as it can be used further.
<?php
require_once 'Beispiel.php';
$seq = new Sequence();
$path = $_SERVER["PATH_INFO"];
echo "PATH: ".$path."<br/>";
echo "Request mode: ".$_SERVER["REQUEST_METHOD"]."<br/>";
$daten = spliti ("/", $path);
echo "get-daten[1] ".$daten[1]."<br/>";
if($_SERVER["REQUEST_METHOD"]== "POST"){
echo "POST".$daten[1];
$seq->setzeSequence($daten[1], $_POST["xml"]);
}
elseif($_SERVER["REQUEST_METHOD"] == "DELETE"){
echo "DELETE".$daten[1];
$seq->loescheSequence($daten[1]);
}
elseif($_SERVER["REQUEST_METHOD"] == "GET"){
$antwort = $seq->holeSequence($daten[1]);
echo "antwort[0]: ".$antwort[0]."<br/>";
foreach($antwort as $mes){
echo "mes ".$mes."<br/>";
}
}
?>