-1

我有一个字符串发送$_GET['foo']="C# Programmer";

当我回显时$_GET['foo'],它只打印C

当字符串容器 # 或其他符号由 $_GET 发送时,有什么方法可以解决这个问题

4

3 回答 3

2

空格和哈希 ( #) 在 HTTP URL 中无效,如果您想在参数值中使用它,则需要对其进行编码。您可以使用urlencode()创建 URL 安全的参数值。

以下应该有效:

foo=C%23%20Programmer

如果您尝试GET从其他页面发送请求,您需要这样的内容:

<?php 
$var = 'C# Programmer'; 
?>
<a href="select.php?foo=<?php echo urlencode($var) ?>"> Go </a>

现在,在 中select.php,如果您尝试echo $_GET['foo'];,它会显示C# Programmer

于 2013-09-30T15:27:02.580 回答
1

使用像 urlencode 这样的函数来传递这种值,使用 urldecode 来获取这些值。尽量利用post方法避免此类问题

于 2013-09-30T15:27:25.973 回答
1

您应该使用名为 urlencode 的函数,它返回一个字符串,其中除了 -_ 之外的所有非字母数字字符。已替换为百分号 (%) 后跟两个十六进制数字和编码为加号 (+) 的空格。

<?php 
$var = 'C# Programmer'; 
?>  <!-- end of PHP code -->
<a href="select.php?foo=
<?php echo urlencode($var) ?>  <!-- start and end of PHP code -->
"> Go </a>

活生生的例子

有关更多信息,请阅读urlencode

于 2013-09-30T15:31:44.470 回答