2013-06-05 206 views
2

在一个项目中,我已经建立的本地版本,我已经发送一个JSON字符串作为HTTP查询参数,并使用json_decode()函数将字符串解码成PHP数组。发送一个JSON字符串作为HTTP查询参数?

在当地,这是工作的罚款(XAMPP)然而,当我将这些文件上传到我的客户的服务器,他们不再工作。我已经诊断出这是一个问题,其中JSON字符串被传递的参数例如是o=[{"b_id":"1","p_ref_id":"SHAY899","b_name":"John Smith"}]未在全球$_GET阵列中找到。

我想可能是编码/解码JSON所需的PHP版本不可用,但是我在此项目的其他部分使用json_encode(),所以这不成问题。我想知道如果这是一个最大字符长度问题,如果是的话,我将如何解决它(或我会在哪里开始至少)?

如果没有,其他任何帮助将是非常非常感谢!

+1

如果它是一个很长的URL,这可能是因为您遇到了某种限制。此外,出于安全原因,许多Web服务(和框架)都会阻止URL上的某些字符,以防范例如XSS攻击。奇怪的是,你并没有得到任何类型的HTTP错误。 –

+0

在将它作为查询字符串参数之前,您是否将URL编码为JSON字符串? –

+0

@MikeChristensen多久你会说是一个真正的长URL /这个限制在基本配置(无框架)PHP,Apache或其他地方设置? – Kemebear

回答

2

而不是使用JSON使用http_build_query()的。它已经被URL编码了,如果这是问题,它可能为你节省一些空间。它也处理多维数组。

3

用途:

urlencode(json_encode($string)); 

,并使用urldecode(json_decode($ _ GET [ '字符串']))字符串解码成PHP数组。

相关问题