php REQUEST_URI

时间:2011-12-28 07:59:27

标签: php

我有以下php脚本来读取URL中的请求:

$id = '/' != ($_SERVER['REQUEST_URI']) ? 
    str_replace('/?id=' ,"", $_SERVER['REQUEST_URI']) : 0;

当网址为http://www.testing.com/?id=123

时使用

但现在我想在url字符串http://www.testing.com/?id=123&othervar=123

中再传递1个变量

我应该如何更改上面的代码来检索这两个变量?

5 个答案:

答案 0 :(得分:14)

您可以使用正则表达式,也可以继续使用str_replace

例如

$url = parse_url($_SERVER['REQUEST_URI']);

if ($url != '/') {
    parse_str($url['query']);
    echo $id;
    echo $othervar;
}

输出将是: http://www.testing.com/123/123

答案 1 :(得分:5)

我认为parse_str是您正在寻找的东西,这样的东西可以帮到您:

parse_str($_SERVER['QUERY_STRING'], $vars);

然后$vars数组将保存所有传递的参数。

答案 2 :(得分:1)

也许

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

$other_var = isset($_GET['othervar'])?$_GET['othervar']:null;

答案 3 :(得分:0)

由于通过url传递的vars是$ _GET变量,你可以使用filter_input()函数:

$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);
$othervar = filter_input(INPUT_GET, 'othervar', FILTER_SANITIZE_FULL_SPECIAL_CHARS);

它会存储每个var的值并清理/验证它们。

答案 4 :(得分:0)

您可以简单地使用async 特别是如果您知道$_GET的名称。 为了安全起见,请使用othervar 测试存在性。