我在PHP中使用以下代码进行重定向
header("Location:restaurantsList.php?msg=Restaurant 100#we updated successfully");
restaurantsList.php
当我试图获取request parameters
然后获取关注数组时。{/ p>
Array ( [msg] => Restaurant 100 )
Param值在'#'
之后被截断。
如果传递param中的任何普通文本(没有#),那么我将获得完整的字符串。
是否有任何解决方案可以获取字符串,即使字符串包含#
?
答案 0 :(得分:1)
您的查询字符串中应该URL encode个特殊字符,因此您的网址应如下所示:
header("Location:restaurantsList.php?msg=Restaurant%20100%23we%20updated%20successfully");
答案 1 :(得分:1)
#
符号用于锚链接,因此如果用作"数据"则必须进行编码。在URL中。您可以使用urlencode
PHP函数。 #
符号将转换为%23
答案 2 :(得分:1)
#
中的表现为调用Fragment identifier
Javascript:window.location.hash
; //这是以#
标记
您需要对服务器端代码中的url组件进行编码以保留消息
header("Location:restaurantsList.php?msg=".
urlencode("Restaurant 100#we updated successfully"));
OR
header("Location:restaurantsList.php?msg=Restaurant 100%23we updated successfully");
答案 3 :(得分:1)
urlencode
之后需要msg=
字符串:
header("Location:restaurantsList.php?msg=" . urlencode("Restaurant 100#we updated successfully");