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 试图通过GET only发送部分发送参数_Php_Url_Get - Fatal编程技术网

Php 试图通过GET only发送部分发送参数

Php 试图通过GET only发送部分发送参数,php,url,get,Php,Url,Get,我正试图通过GET发送一个参数 这是我的网址: http://localhost/app_yy/public/hotel/cancel?AvailSply=ID_B2B_20#RA1B2BHB 这是打印功能的结果: Array ( [AvailSply] => ID_B2B_20 ) 然而,我被期望AvailSply成为ID\u B2B\u 20\RA1B2BHB——为什么它的一部分被切断了 问题 为什么它的一部分被切断了 因为参数包含一个#。如果您的URL中有一磅,它将不会被

我正试图通过GET发送一个参数

这是我的网址:

http://localhost/app_yy/public/hotel/cancel?AvailSply=ID_B2B_20#RA1B2BHB
这是打印功能的结果:

Array
(
    [AvailSply] => ID_B2B_20
)
然而,我被期望
AvailSply
成为
ID\u B2B\u 20\RA1B2BHB
——为什么它的一部分被切断了

问题 为什么它的一部分被切断了

因为参数包含一个
#
。如果您的URL中有一磅,它将不会被视为GET参数的一部分,而是。查看那里的零件与
前面的零件如何相同?这是因为浏览器假设它是一个

这种语法--“在
#
之后的任何字符都标识一个片段”--意味着不能在GET参数中包含该字符

解决方案 不过,你可以这样做,这意味着你的URL看起来像

http://localhost/app_yy/public/hotel/cancel?AvailSply=ID_B2B_20%23RA1B2BHB
而不是你所拥有的。注意
%23
而不是
#
——它在解码时会变成
#
,但不会触发片段标识符解析

有很多库可以对内容进行URL编码——例如,在PHP中,您可以使用和



维基百科的文章很好地描述了片段标识符是什么,但用外行英语来说,片段标识符标记了你想在页面中的位置。例如,如果您想链接到文档中的副标题或页面中的选项卡,那么它非常有用。但是,在这里,它不是您想要的。

在URL中,带有数字符号(#)散列或指向ancors的链接会被标记。
如果希望将#作为GET参数值传输,则必须将其转义:

  • 在Javascript中: 逃逸(价值)

  • 手动(%23代表#): ....?可用性=ID_B2B_20%23RA1B2BBB


@AmitRajput虽然这与问题无关,但它甚至没有提供一个讽刺的答案,因为它需要知道解决方案,才能看出它的相关性。