php
2015-11-06 81 views -1 likes 
-1

我们遇到了反斜杠问题。PHP json_encode问题与balckslash

当我们json_encode “FBU4061 \ 0258” 变为了FBU40618加上双引号,

$x = "FBU4061\0258"; 
json_encode($x, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); 

但烧毛引用它提供了正确的价值 'FBU4061 \ 0258'。

$x = 'FBU4061\0258'; 
json_encode($x, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); 

如何消除这个问题,因为当我们取数据它带有双引号?

回答

2

当您使用double quoted strings时,PHP执行转义序列替换,并且\0NUL字节。

\\[0-7]{1,3}匹配正则表达式的字符序列是八进制的字符使用single quotes在不进行

这样的更换,让您得到预期的结果。

按@Quentin话:

你必须考虑到一个字符串的源代码和文字一旦它已经通过PHP编译通过了该字符串的值之间的差异。

+2

换句话说:一旦通过PHP编译器,您必须考虑字符串文字的源代码与该字符串文字的值之间的差异。 – Quentin

+0

什么是解决方案家伙? – Shaolin

+0

@MDeSilva使用单引号。 –

相关问题