Как разбить строку на несколько разделителей в 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.
Ответ 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>';
Ответ 3 Функция split() PHP позволяет ограничителю быть регулярным выражением. К сожалению, он устарел и будет удален в PHP7! Функция preg_split() должна быть в порядке, и она возвращает массив: $results = preg_split('[;,]/', $string); Есть несколько дополнительных необязательных параметров, которые могут быть вам полезны. Является ли первый символ разделителя в вашем отредактированном примере фактически двухбайтным символом Unicode? Возможно, функция preg_slit() обрабатывает разделитель как три символа и разделяет символы символов Unicode (Chinese?) '
Ответ 4 Вы можете получить значения в массиве, используя метод Devin или Meder. Чтобы получить желаемый результат, вы, вероятно, можете сделать это echo implode("\n", $resultingArray); Или используйте <br />, если он нужен HTML.