Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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 阅读及;正在通过GET传递的字符_Php_Get_Query String_Html Encode - Fatal编程技术网

Php 阅读及;正在通过GET传递的字符

Php 阅读及;正在通过GET传递的字符,php,get,query-string,html-encode,Php,Get,Query String,Html Encode,我正在阅读GET查询字符串的内容,每次遇到&例如Blackstone Woodfire&Grill,GET正在阅读Blackstone Woodfire 如果可能的话,我如何避免这种情况 我知道我可以对参考页面中的特殊字符进行编码,然后在指向此页面时对其进行解码 我只是好奇。您可以使用urlencode对get字符串进行编码。稍后,如果您想从$获取它,请获取urldecode 您可以将所有与符号替换为%26问题在于,您使用get发送的参数使用&分隔。 所以如果你有一个像 http:/examp

我正在阅读
GET
查询字符串的内容,每次遇到
&
例如
Blackstone Woodfire&Grill
GET
正在阅读
Blackstone Woodfire

如果可能的话,我如何避免这种情况

我知道我可以对参考页面中的特殊字符进行编码,然后在指向此页面时对其进行解码


我只是好奇。

您可以使用urlencode对get字符串进行编码。稍后,如果您想从$获取它,请获取urldecode


您可以将所有与符号替换为%26

问题在于,您使用get发送的参数使用&分隔。 所以如果你有一个像

 http:/example.com?param_1=value_1&param_2=value_2
您将有一个$\u GET数组,如

array(
    param_1 => 'value_1',
    param_2 => 'value_2'
);
array(
    param_1 => 'value_1 ',
    ' value_2' => ''
);
现在,如果您发送和url如下:

 http://example.com?param_1=value_1 & value_2
您将有一个$\u GET数组,如

array(
    param_1 => 'value_1',
    param_2 => 'value_2'
);
array(
    param_1 => 'value_1 ',
    ' value_2' => ''
);
简单地说,这就是发送GET参数的方式。 在接受方面,你无能为力,问题就在另一端。 正在发送的GET参数确实必须在使用

 echo 'http://example.com?param_1=' . urlencode('value_1 & value_2');
Javascript使用encodeURIComponent()解决此问题。
PHP在创建$\u get global时,会自动对每个get参数调用urldecode()。

您不需要对其进行解码,这应该自动完成。你能做一个
var\u dump
$\u GET
吗?你是如何读取querystrig的?您使用的确切输入和确切代码是什么?鉴于
&
是分隔符字符,由于它用作分隔符而被省略,如果要“读取”
&
符号,则应将其编码为
&