我正在使用在多个服务器上运行的PHP程序,并从两个服务器生成略有不同的字符串。
**Server 1 Request Data:**
a:10:{s:9:"locale";s:5:"en_US","url";s:18:"https://testingurl.com/index.php";}
**Server 2 Request Data:**
{"locale":"en_US","url":"https:\/\/testingurl.com\/index.php";}
两个服务器都发送相同的变量,但格式略有不同。服务器1在请求之前添加了附加信息,例如:3:服务器2省略了这些细节,但是转发了正斜杠。
问题: a:3:,s:9:常见的编码,或服务器配置可能添加到请求的内容?我不熟悉这种格式,不知道它是否是常见的东西。我的目标是弄清楚它是否是添加附加信息或服务器配置的PHP程序。
答案 0 :(得分:2)
很容易
当前问题
此序列化格式无效
a:10:{s:9:"locale";s:5:"en_US","url";s:18:"https://testingurl.com/index.php";}
^ ^ ^
2 6 32
我觉得它应该是这样的
$server1 = 'a:2:{s:6:"locale";s:5:"en_US";s:3:"url";s:32:"https://testingurl.com/index.php";}';
var_dump(unserialize($server1));
$server2 = '{"locale":"en_US","url":"https:\/\/testingurl.com\/index.php"}';
var_dump(json_decode($server2, true));
输出
array
'locale' => string 'en_US' (length=5)
'url' => string 'https://testingurl.com/index.php' (length=32)
答案 1 :(得分:1)
答案 2 :(得分:1)
a:10和s:9和类似字符是PHP序列化,而整个字符串看起来像是JSON编码。也就是说,格式看起来很糟糕(我假设你刚刚省略了一些输出),但这里有一个如何生成这个的例子:
$a=json_encode(array('locale'=>'en_US','url'=>'https://testingurl.com/index.php'));
echo $a;
echo "<br />";
echo serialize($a);