How to explode a multi-line string?

♀尐吖头ヾ 提交于 2019-11-28 00:09:44

问题


I have a string that has different values on each line:

$matches="value1
value2
value3
value4
value5
";

I want to explode the whole string in to an array consisting of the values separeted. I know how to explode a space separated string, like explode(' ', $matches). But how do i use the explode function on this type of string?

I tried this:

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

But the result is like:

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

)

回答1:


You need to change '\n' to "\n".

From PHP.net:

If the string is enclosed in double-quotes ("), PHP will interpret more escape sequences for special characters:

\n linefeed (LF or 0x0A (10) in ASCII)
More...




回答2:


Read manual

Note: Unlike the double-quoted and heredoc syntaxes, variables and escape sequences for special characters will not be expanded when they occur in single quoted strings.

So use "\n" instead of '\n'

Also, instead of \n you can use PHP_EOL constant.
In the Windows "\r\n" can be used as end of line, for this case you can make double replacement:
$matches=explode("\n", str_replace("\r","\n",$matches));



来源:https://stackoverflow.com/questions/6162912/how-to-explode-a-multi-line-string

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!