Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/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 url问题中的url编码_Php_Apache_Urlencode_Url Encoding - Fatal编程技术网

Php url问题中的url编码

Php url问题中的url编码,php,apache,urlencode,url-encoding,Php,Apache,Urlencode,Url Encoding,我使用的服务是,他们的服务器每小时都会与我的服务器联系,如下所示: /check.php?id=1&name=anonyme&country=us $id = @$_GET['id']; $name = @$_GET['name']; $country = @$_GET['country']; 所以我收集了如下信息: /check.php?id=1&name=anonyme&country=us $id = @$_GET['id']; $name = @$_

我使用的服务是,他们的服务器每小时都会与我的服务器联系,如下所示:

/check.php?id=1&name=anonyme&country=us
$id = @$_GET['id'];
$name = @$_GET['name'];
$country = @$_GET['country'];
所以我收集了如下信息:

/check.php?id=1&name=anonyme&country=us
$id = @$_GET['id'];
$name = @$_GET['name'];
$country = @$_GET['country'];
太好了,一切正常。但是当名称上有空格时,我们可以这样说:

/check.php?id=1&name=MR Anonymous&country=us
然后在php中,我只能提取ID和名称的第一部分,即“MR”。我无法得到其他值(国家,等等),因为这个空间,它们保持为空

我已经联系了发送此信息的公司,我告诉他们这可能是他们的问题,他们说不,我只需要对我的URL进行URL编码

我仍然认为这是他们的问题,不是我的问题,因为当我看到Apache日志时,我看到他们的URL上有一个空格,他们应该修复这个空格。(因为当我在任何浏览器中使用相同的URL时,该空间会变成%20,而该公司的情况并非如此)


是我的问题吗?还是他们的问题?如果它是我的,如何修复它?

URI中不允许使用原始空间(即使某些客户端和服务器在被要求处理它们时可能会恢复错误)


您确实需要对数据进行URL编码。

URI中不允许使用原始空格(即使某些客户端和服务器在被要求处理它们时可能会恢复错误)


您确实需要对数据进行URL编码。

我认为他们(另一台服务器)需要在发送到您的服务器之前对数据进行
urlencode()
,然后您将
urldecode()
它。

我认为他们(另一台服务器)需要在发送到您的服务器之前对数据进行
urlencode()
,然后你将
urldecode()
it.

如果他们向你的服务器发出这些请求(而你无法控制这些请求),那么肯定不是你的错

URI中的空格是禁止的。Apache确实允许这样做,但PHP会感到困惑,并将空格后的部分作为协议


您可以通过将
$\u服务器['SERVER\u PROTOCOL']
附加到
$\u服务器['QUERY\u STRING']
来解决此问题,删除最后一个空格后的所有内容,然后解析此URL(请参阅和)。但是,最好的办法是他们修复他们的请求。

如果他们向您的服务器发出这些请求(而您无法控制这些请求),那么肯定不是您的错

URI中的空格是禁止的。Apache确实允许这样做,但PHP会感到困惑,并将空格后的部分作为协议


您可以通过将
$\u服务器['SERVER\u PROTOCOL']
附加到
$\u服务器['QUERY\u STRING']
来解决此问题,删除最后一个空格后的所有内容,然后解析此URL(请参阅和)。但是,最好的办法是他们修复他们的请求。

你应该询问提出请求的公司为什么需要对他们的URL进行URL编码。你应该询问提出请求的公司为什么需要对他们的URL进行URL编码。你可以到PHP手册中搜索URLENCODE,它将向你展示该函数。编码在哪里?我的变量是空的。。。如果您转到PHP手册并搜索urlencode,它将向您显示函数。在哪里进行编码?我的变量是空的。。。那是行不通的