Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么这个问题会破裂?_Php_Url - Fatal编程技术网

Php 为什么这个问题会破裂?

Php 为什么这个问题会破裂?,php,url,Php,Url,我有这个网址- http://localhost/app_demo/sample.php?jsonRequest={"GenInfo":{"type":"Request","appname":"XXX","appversion":"1.0.0"},"searchDish":{"userId":"295","dishName":"","est":"Pizza & Wings","location":"","type":"","priceRange":"","deviceos":"v

我有这个网址-

http://localhost/app_demo/sample.php?jsonRequest={"GenInfo":{"type":"Request","appname":"XXX","appversion":"1.0.0"},"searchDish":{"userId":"295","dishName":"","est":"Pizza &amp; Wings","location":"","type":"","priceRange":"","deviceos":"value","deviceId":"<UDID>","deviceType":"value","pageNo":"1"}}
字符串打印仅限于

{"GenInfo":{"type":"Request","appname":"XXX","appversion":"1.0.0"},"searchDish":{"userId":"295","dishName":"","est":"2 Pizza
我在网上搜索,但没有得到答案。有什么解决办法? 请帮忙,
谢谢。

查询字符串通常由键/值对组成,查询字符串的开头是问号(?),然后所有对都用符号(&)分隔。在您的值中有一个与符号就像启动一个新参数

然而,这不是正确的方法。您不应该将JSON放在查询字符串中


如果确实在查询字符串中必须有一个与,请使用%26而不是&%26,它是符号AND的十六进制值。

您应该发出POST请求,而不是GET请求:

  • 编码冲突
  • URI长度限制
字符“&”是个问题,因为它是保留的。(是查询字符串参数分隔符) 在GET请求中使用字符串之前,必须将其“”为“”。所以像&这样的字符被转换。但正如jValdron所指出的,不应该将JSON放入查询字符串中,但可以这样做

因此,您需要对字符串进行URL编码:

$url = 'http://localhost/app_demo/sample.php?jsonRequest=';
$jsonRequest = urlencode('{"GenInfo":{"type":"Request","appname":"XXX","appversion":"1.0.0"},"searchDish":{"userId":"295","dishName":"","est":"Pizza &amp; Wings","location":"","type":"","priceRange":"","deviceos":"value","deviceId":"<UDID>","deviceType":"value","pageNo":"1"}}');
$url .= $jsonRequest;

同样,您不应该将JSON放在查询字符串中。

不要使用
$\u REQUEST
指定
$\u POST
$\u GET
$url = 'http://localhost/app_demo/sample.php?jsonRequest=';
$jsonRequest = urlencode('{"GenInfo":{"type":"Request","appname":"XXX","appversion":"1.0.0"},"searchDish":{"userId":"295","dishName":"","est":"Pizza &amp; Wings","location":"","type":"","priceRange":"","deviceos":"value","deviceId":"<UDID>","deviceType":"value","pageNo":"1"}}');
$url .= $jsonRequest;
print_r(urldecode($_REQUEST['jsonRequest']));