我已获得以下代码:
$output2 = 'text

more text

ja';
$explode = explode('

', $output);
这很好用,$explode
数组打印如下:
Array
(
[0] => text
[1] => meer text
[2] => ja
)
但是,以下代码无效,我不知道如何修复它:
$output = 'text



more text



ja';
$explode = explode('

', $output);
$explode
数组打印以下内容:
Array
(
[0] => text



 //more text



ja
)
这似乎是一个奇怪的问题。但第一个例子是我手工制作的测试。但第二个例子是从数据库实际返回的内容。
答案 0 :(得分:1)
您可以使用preg_split
拆分字符串:
<?php
$output = 'text



more text



ja';
$explode = preg_split('/(
|(\r\n|\r|\n))+/', $output, -1, PREG_SPLIT_NO_EMPTY);
演示: https://ideone.com/KU0v9t( ideone )或https://eval.in/887393( eval.in )
以下解决方案要拆分双

:
$output = 'text



more text



ja

nein';
$explode = preg_split('/(\r\n|\r|\n)*(
(\r\n|\r|\n)*){2}/', $output, -1, PREG_SPLIT_NO_EMPTY);
答案 1 :(得分:0)
在代码$output =str_replace("\r\n","",$output );
中添加一行,将所有字符串组合在一行中,以便它是您想要的第一个示例。
$output =str_replace("\r\n","",$output );
$explode = explode('

', $output);
print_r($explode);
答案 2 :(得分:0)
$explode = preg_split('/
\s*
/', $output);
答案 3 :(得分:0)
通过删除所有新行来标准化字符串:
Dim str As String = String.Join( _
Environment.NewLine, _
dt.Rows.Cast(Of DataRow)().Select( _
Function(r) String.Join( _
",", _
r.ItemArray().Select(Function(o, i) If(i = 1, Format(o, "yyyy-MM-dd"), o.ToString())).ToArray() _
) _
).ToArray() _
)
Console.WriteLine(str)
然后爆炸它。
答案 4 :(得分:0)
正如User2486所说,问题在于你有一些隐藏的角色你没有看到像\ n和\ r
在你的第一个例子中,你有
'text

more text

ja'
并在第二个
'text\r\n
\r\n
more text\r\n
\r\n
ja'