Как разорвать многострочную строку?


PHP - У меня есть строка, которая имеет разные значения в каждой строке:

$matches="value1
value2
value3
value4
value5
";

Я хочу разнести всю строку в массив, состоящий из отдельных значений. Я знаю, как взорвать строку, разделенную пробелом, напримерexplode(' ', $matches). Но как мне использовать функцию разнесения для этого типа строк?

Я попробовал это:

$matches=explode('\n',$matches);
print_r($matches);

Но результат такой:

Array
(
    [0] => hello
hello
hello
hello
hello
hello
hello

)
Author: Sujit Agarwal, 2011-05-28

2 answers

Вам нужно изменить '\n' на "\n".

Из PHP.net:

Если строка заключена в двойные кавычки ("), PHP будет интерпретировать больше escape-последовательностей для специальных символов:

\n перевод строки (LF или 0x0A (10) в ASCII)
Больше...

 25
Author: Tim Cooper, 2011-05-28 16:34:34

Прочитайте руководство пользователя

Примечание: В отличие от синтаксисов с двойными кавычками и heredoc, переменные и escape последовательности для специальных символов не будут расширяться, если они встречаются в строках в одинарных кавычках.

Поэтому используйте "\n" вместо "\n"

Кроме того, вместо \n вы можете использовать константу PHP_EOL.
В окнах "\r\n" можно использовать в качестве конца строки, для этого случая вы можете сделать двойную замену:
$matches=explode("\n", str_replace("\r","\n",$matches));

 5
Author: OZ_, 2011-05-28 16:46:28