【问题标题】:How to explode a multi-line string?如何爆炸多行字符串?
【发布时间】:2011-09-04 00:14:19
【问题描述】:

我有一个字符串,每行都有不同的值:

$matches="value1
value2
value3
value4
value5
";

我想将整个字符串分解为一个由分隔值组成的数组。我知道如何分解空格分隔的字符串,例如explode(' ', $matches)。但是如何对这种类型的字符串使用explode函数呢?

我试过了:

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

但结果是这样的:

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

)

【问题讨论】:

标签: php explode


【解决方案1】:

阅读manual

注意:与双引号和 heredoc 语法、变量和转义 特殊字符的序列将 当它们发生在 单引号字符串。

所以用“\n”代替“\n”

另外,您可以使用 PHP_EOL 常量来代替 \n
在 Windows 中,"\r\n" 可以作为行尾,这种情况下可以进行双重替换:
$matches=explode("\n", str_replace("\r","\n",$matches));

【讨论】:

    【解决方案2】:

    您需要将'\n' 更改为"\n"

    来自PHP.net

    如果字符串包含在 双引号 ("),PHP 将解释 更多特殊的转义序列 字符:

    \n 换行(LF 或 ASCII 格式的 0x0A (10))
    More...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多