взорвать строку на «новая строка, пробел, новая строка, пробел» в PHP - PullRequest
1 голос
/ 19 июня 2019

Это строка, которую я пытаюсь взорвать. Эта строка является частью абзаца, который мне нужно разбить на каждую «новую строку, пробел, новую строку, пробел»:

s

 1

Результат от textmagic.com показывает, что он содержит \ n, затем пробел, затем \ n, а затем пробел.

enter image description here

Вот что я попробовал:

$values = explode("\n\s\n\s",$string); // 1
$values = explode("\n \n ",$string);   // 2
$values = explode("\n\r\n\r",$string); // 3

Желаемый выход:

Array (
    [0] => s
    [1] => 1
)

но никто из них не работал. Что здесь не так? Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 19 июня 2019

Просто используйте explode() с PHP_EOL." ".PHP_EOL." ", который имеет формат «новая строка, пробел, новая строка, пробел». Используя PHP_EOL, вы получаете правильный формат новой строки для вашей системы.

$split = explode(PHP_EOL." ".PHP_EOL." ", $string);
print_r($split);

Демонстрация в прямом эфире на https://3v4l.org/WpYrJ

0 голосов
/ 19 июня 2019

Использование preg_split () для разнесения () несколькими разделителями в PHP

Просто короткая заметка здесь. Чтобы взорвать () строку, используя несколько разделителей в PHP, вы должны будете использовать регулярные выражения. Используйте символ трубы для разделения разделителей.

<code>$string = "\n\ranystring"
$chunks = preg_split('/(de1|del2|del3)/',$string,-1, PREG_SPLIT_NO_EMPTY);

// Print_r to check response output.
echo '<pre>';
print_r($chunks);
echo '
';

PREG_SPLIT_NO_EMPTY - для возврата только непустых частей.

...