7

PHPで複数のexplode()を実行できますか?

たとえば、次のようにします。

foreach(explode(" ",$sms['sms_text']) as $no)
foreach(explode("&",$sms['sms_text']) as $no)
foreach(explode(",",$sms['sms_text']) as $no)

次のように一気に爆発します。

foreach(explode('','&',',',$sms['sms_text']) as $no)

これを行う最善の方法は何ですか?私が望むのは、文字列を複数の区切り記号で 1 行に分割することです。

4

5 に答える 5

17

文字列を複数の区切り記号で分割する場合は、おそらくpreg_split適切です。

$parts = preg_split( '/(\s|&|,)/', 'This and&this and,this' );
print_r( $parts );

結果は次のとおりです。

Array ( 
  [0] => This 
  [1] => and 
  [2] => this 
  [3] => and 
  [4] => this 
)
于 2012-05-14T04:47:31.020 に答える
2

あなたはこれを使うことができます

function multipleExplode($delimiters = array(), $string = ''){

    $mainDelim=$delimiters[count($delimiters)-1]; // dernier

    array_pop($delimiters);

    foreach($delimiters as $delimiter){

        $string= str_replace($delimiter, $mainDelim, $string);

    }

    $result= explode($mainDelim, $string);
    return $result;

} 
于 2012-05-14T04:46:10.740 に答える
0

私は一緒に行きますstrtok()、例えば

$delimiter = ' &,';
$token = strtok($sms['sms_text'], $delimiter);

while ($token !== false) {
    echo $token . "\n";
    $token = strtok($delimiter);
}
于 2012-05-14T04:52:01.137 に答える
0

preg_split()関数を使用して、次のように正規表現を使用して文字列を分割できます。

$text = preg_split('/( |,|&)/', $text);
于 2012-05-14T04:48:03.983 に答える