【发布时间】:2019-11-01 19:32:32
【问题描述】:
这是我要爆炸的字符串。这个字符串是段落的一部分,我需要在每个“换行符,空格,换行符,空格”处拆分:
s
1
来自 textmagic.com 的结果显示它包含一个 \n,然后是一个空格,然后是一个 \n,然后是一个空格。
这是我尝试过的:
$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
)
但他们都没有工作。这里有什么问题? 我该怎么做?
【问题讨论】:
-
这里想要的输出是什么?
-
我已在问题中添加了所需的输出。顺便说一句,我恢复了您所做的一些编辑,因为它改变了字符串中的空格和换行符。
-
我的猜测是您正在处理 Windows 换行符,因此正确的字符串将变为
\n\r \n\r,但我尚未对其进行测试,因为我正在从手机上输入此评论 -
您认为它在 textmagic 输出中的确切位置是 \n?传说中明确表示黄色符号被计为 两个 字符,因此这更可能确实是 \r\n。另外,如果您不确定您的数据实际包含什么,使用 urlencode 是一种快速查看那些“不可见”字节序列的方法。
-
您对“换行符”字符的解释可能存在问题,它的表示取决于操作系统和字符集编码。所以“\n”可能与二进制数据的“换行符”不匹配。见en.wikipedia.org/wiki/Newline。 TextMagic 的屏幕截图显示数据中的换行符占用 2 个字节,这应该为您指明正确的方向。