带有破折号的PHP GET变量

时间:2014-07-25 07:54:20

标签: php get

网址为 something.php?id = 123-10-1

如果我echo,它只打印 123 ,但我需要它来说 123-10-1

我认为解决方案非常简单,但我没有看到它。

6 个答案:

答案 0 :(得分:2)

当然,您将把完整的参数存储在GET数组中。你没有做错任何事。错误应该在其他地方。尝试使用:

var_dump($_GET);
$equal = ('123-10-1' == $_GET['id']);
var_dump($equal);

看看有什么问题...... Echo不是最好的打印功能,但是,它也应该打印完整的论点......


更新 - 注意

在我们知道错误之后:

$id = isset($_GET['id']) ? (int)$_GET['id'] : '';

我会建议这样的事情:

// Set part of the code
$id = isset($_GET['id']) ? $_GET['id'] : ''; 

// Verification part of the code
if (!is_numeric($id) && $id != '') {  
    throw new Exception('ID must be numeric.');
}
if ($id == '') {
    // ID was not set in the url. Maybe there should be another action here?
}

在这种情况下,你完全可以控制这里发生的事情。 Modyfing GET值或POST值"在飞行中"不是好习惯。 我希望它有所帮助。

答案 1 :(得分:2)

使用php urlencodeurldecode函数。

答案 2 :(得分:0)

尝试使用<a href="something.php?id=123-10-1">之类的锚标记,它将回显123-10-1

答案 3 :(得分:0)

您正在搜索函数urlencode,该函数编码要在URL的查询部分中使用的字符串。

答案 4 :(得分:0)

这是我的代码。

$id = $_GET['id']

echo $id; //123

它只打印'123'。

但是

echo $_GET['id']; //123-10-1

打印出来。看起来很怪异,因为它应该首先起作用,但它现在有效。 要检查我的php.ini,看看这是什么。

答案 5 :(得分:0)

  • 我试过你的代码给我正确的答案

    - <?php echo $_GET['id']; ?>

输出123-10-1