php[tek] 2018 : Call for Speakers

spliti

(PHP 4 >= 4.0.1, PHP 5)

spliti大文字小文字を区別しない正規表現により文字列を分割し、配列に格納する

警告

この関数は PHP 5.3.0 で 非推奨 となり、 PHP 7.0.0 で 削除 されました。

この関数の代替として、これらが使えます。

説明

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

string を、正規表現によって配列に分割します。

この関数は、アルファベット文字にマッチさせる際に大文字小文字を 区別しないこと以外は、split() と同じです。

パラメータ

pattern

大文字小文字を区別しない正規表現。

正規表現で特殊文字とみなされる文字を分割したい場合、それらを まずエスケープする必要があります。spliti() (または他の正規表現関数に関して)の動作が何か変であると感じたならば、 PHP 配布ファイルの regex/ サブディレクトリにあるファイル regex.7 を読んでください。このファイルは man ページ形式となっており、読むには man /usr/local/src/regex/regex.7 のようにします。

string

入力文字列。

limit

limit が指定された場合、返される配列には 最大 limit の要素が含まれます。この場合、 最後の要素には string の残りの部分が全て 入っています。

返り値

文字列の配列を返します。配列の各要素は、大文字小文字を区別する正規表現 pattern により区切られた string 中の部分文字列です。

patternn 回 現れる場合、返される配列には、 n+1 個のアイテムが 含まれます。例えば、pattern が現れない場合、 1 個の要素のみを有する配列が返されます。もちろん、これは string が空の場合でも有効です。 エラーを生じた場合、spliti()FALSE を返します。

この例では 'a' を区切り文字として文字列を分割します。

例1 spliti() の例

<?php
$string 
"aBBBaCCCADDDaEEEaGGGA";
$chunks spliti ("a"$string5);
print_r($chunks);
?>

上の例の出力は以下となります。

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

参考

  • preg_split() - 正規表現で文字列を分割する
  • split() - 正規表現により文字列を分割し、配列に格納する
  • explode() - 文字列を文字列により分割する
  • implode() - 配列要素を文字列により連結する

add a note add a note

User Contributed Notes 3 notes

up
0
jeffmixpute
6 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
0
Anonymous
13 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
vbelon at hotmail dot com
13 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