Как разбить строку на несколько разделителей в PHP?
"something here ; and there, oh,that all!"
Я хочу разбить его на ;
и ,
поэтому после обработки следует получить:
something here
and there
oh
that all!
Ответы
Ответ 1
<?php
$pattern = '/[;,]/';
$string = "something here ; and there, oh,that all!";
echo '<pre>', print_r( preg_split( $pattern, $string ), 1 ), '</pre>';
Обновленный ответ на обновленный вопрос:
<?php
$pattern = '/[\x{ff0c},]/u';
//$string = "something here ; and there, oh,that all!";
$string = 'hei,nihao,a ';
echo '<pre>', print_r( preg_split( $pattern, $string ), 1 ), '</pre>';
Ответ 2
$result_array = preg_split( "/[;,]/", $starting_string );
Ответ 3
Функция split() PHP позволяет ограничителю быть регулярным выражением. К сожалению, он устарел и будет удален в PHP7!
Функция preg_split() должна быть в порядке, и она возвращает массив:
$results = preg_split('[;,]/', $string);
Есть несколько дополнительных необязательных параметров, которые могут быть вам полезны.
Является ли первый символ разделителя в вашем отредактированном примере фактически двухбайтным символом Unicode?
Возможно, функция preg_slit() обрабатывает разделитель как три символа и разделяет символы символов Unicode (Chinese?) '
Ответ 4
Вы можете получить значения в массиве, используя метод Devin или Meder.
Чтобы получить желаемый результат, вы, вероятно, можете сделать это
echo implode("\n", $resultingArray);
Или используйте <br />
, если он нужен HTML.