explode和substr_count不适用于" \ n \ n"

时间:2017-05-05 08:14:42

标签: php

大家好,为什么我不能用" \ n \ n"爆炸或计算角色?在我的字符串?

$input = 'sv_privateClientsForClients\\0\\sv_pure\\0\n0 0 0 0 999 \"DarkGhost\"\"spectator\"\n\n0 0 0 0 999 \"MaximuM\"\"spectator\"\n\n",';

$str = substr($input, strpos($input, "sv_pure") + 11, -7);

$x = explode('\n\n', $str);    //not work
$c = substr_count($str,"\n\n"); // not work

3 个答案:

答案 0 :(得分:0)

$input = 'sv_privateClientsForClients\\0\\sv_pure\\0\n0 0 0 0 999 \"DarkGhost\"\"spectator\"\n\n0 0 0 0 999 \"MaximuM\"\"spectator\"\n\n",';
$str = substr($input, strpos($input, "sv_pure") + 11, -7);
$x = explode('\n\n', $str);   
$c = substr_count($str,'\n\n'); //changed double quotes to single quotes

答案 1 :(得分:0)

尝试使用str_replace()函数将'\ n'替换为“ABC”,然后使用“ABC”将字符串展开

答案 2 :(得分:0)

你想要一对换行符,还是你想要输出中的字符串\n\n?答案取决于该问题的答案,但在任何一种情况下,您可以做的最重要的事情是与您使用的引用风格一致。

PHP字符串可以是单引号(''),也可以是双引号("")以及我们赢得的其他几种格式进入为了简单起见。单引号和双引号不一样:

  • 双引号字符串支持包含许多控制字符(\ n表示换行符,\ t表示制表符等),而单引号字符串几乎不支持控制字符。如果您想在单引号字符串中使用换行符,则必须在字符串中添加换行符。
  • 双引号字符串支持变量替换(如果在字符串中放入命名变量,则在回显字符串时将替换命名变量的内容)。

您的代码对某些内容使用单引号字符串而对其他内容使用双引号字符串这一事实意味着您的字符串不一致。 "\n\n"'\n\n'不匹配,因为它们不是同一回事。

如果您希望\n\n表示一对换行符,那么您应该只使用双引号字符串。

如果您希望\n\n表示文字字符串'\n\n',那么您可以使用单引号字符串,也可以使用转义序列\\告诉PHP该字符串下一个字符不是控制字符,而是字面反斜杠。要使用双引号字符串获取\n\n,您需要将其作为"\\n\\n"

输入到代码中