PHP Unconference Europe 2015

spliti

(PHP 4 >= 4.0.1, PHP 5)

splitiDivide una cadena en una matriz mediante una expresión regular insensible a mayúsculas-minúsculas

Descripción

array spliti ( string $pattern , string $string [, int $limit = -1 ] )

Divide un string en una matriz mediante una expresión regular.

Esta función es idéntica a split() excepto que ignora la distinción de mayúsculas-minúsculas cuando se comparan caracteres alfanuméricos.

Advertencia

Esta función ha sido declarada OBSOLETA desde PHP 5.3.0. Su uso está totalmente desaconsejado.

Parámetros

pattern

Expresión regular insensible a mayúsculas-minúsculas.

Si quiere dividir cualesquiera caracteres que están considerados especiales por las expresiones regulares, necesitará escaparlos primero. Si piensa que spliti() (o, de hecho, cualquier otra función de expresión regular) está haciendo algo extraño, por favor, lea el archivo regex.7, incluido en el subdirectorio regex/ de la distribución de PHP. Estas páginas de ayuda están en formato "man", por lo que será necesaria una orden como man /usr/local/src/regex/regex.7 para poder leerlo.

string

La cadena de entrada.

limit

Si se establece limit, la matriz devuelta contendrá un máximo de limit elementos con el último elemento conteniendo el resto completo de string.

Valores devueltos

Devuelve una matriz de cadenas, siendo cada una de ellas una sub-cadena de string formada al dividir éste con los límites establecidos mediante la expresión regular insensible a mayúsculas-minúsculas pattern.

Si hay n incidencias de pattern, la matriz devuelta contentrá n+1 elementos. Por ejemplo, si no hay incidencias de pattern, será devuelta una matriz con sólo un elemento. Por supuesto, esto también es verdadero si string está vacío. Si se produce un error, spliti() devuelve FALSE.

Ejemplos

Este ejemplo divide una cadena usando 'a' como separador :

Ejemplo #1 Ejemplo de spliti()

<?php
$cadena 
"aBBBaCCCADDDaEEEaGGGA";
$trozos spliti ("a"$cadena5);
print_r($trozos);
?>

El resultado del ejemplo sería:

Array
(
  [0] =>
  [1] => BBB
  [2] => CCC
  [3] => DDD
  [4] => EEEaGGGA
)

Notas

Nota:

Desde PHP 5.3.0, la extensión regex queda obsoleta y en su lugar se utiliza extensión PCRE. Si se llama a esta función creará un aviso E_DEPRECATED. Ver El listado de diferencias para obtener ayuda a convertir a PCRE.

Sugerencia

spliti() está obsoleta a partir de PHP 5.3.0. preg_split() con el modificador i (PCRE_CASELESS) es la alternativa sugerida.

Ver también

  • preg_split() - Divide un string mediante una expresión regular
  • split() - Divide una cadena en una matriz mediante una expresión regular
  • explode() - Divide un string en varios string
  • implode() - Une elementos de un array en un string

add a note add a note

User Contributed Notes 3 notes

up
1
Anonymous
10 years ago
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"; }
up
0
jeffmixpute
3 years ago
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/>";
   }
}

?>
up
-1
vbelon at hotmail dot com
10 years ago
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
To Top