从URL获取变量

时间:2011-09-14 08:32:55

标签: php url

URL:

url.com/index.php?id=1000

如何从1000获取id并将其添加到页面上的<h1></h1>

6 个答案:

答案 0 :(得分:6)

您从$_GET数组中获取数字并使用htmlspecialchars将其转义以防止XSS攻击:

echo '<h1>', htmlspecialchars($_GET['id']), '</h1>';

答案 1 :(得分:2)

您应该使用$_GET superglobal数组,该数组包含查询字符串参数。

例如: <h1><?php echo $_GET['id']; ?></h1>

答案 2 :(得分:2)

您可以使用全局数组$_REQUEST[],也可以使用显式$_GET

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

要防止XSS,您还应该使用htmlspecialchars:

<h1><?php echo htmlspecialchars($_GET['id']); ?></h1>

答案 3 :(得分:2)

<h1><?php echo $_REQUEST["id"]; ?></h1>

答案 4 :(得分:2)

$id = $_GET["id"];
//Perform checks on $id
echo '<h1>'.$id.'<h1/>';

如果你想将它注入h1,你可以回复它并使用javascript来设置标签的innerhtml。

答案 5 :(得分:2)

使用$_GET

$id = isset($_GET['id']) ? (int) $_GET['id'] : FALSE;
echo '<h1>', $id, '</h1>';

如果网址在变量中,请使用parse_urlDocsparse_strDocs

$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $vars);
$id = isset($vars['id']) ? (int) $vars['id'] : FALSE;
echo '<h1>', $id, '</h1>';

修改

如果您启用了register globals高度不鼓励,那么只是为了完整性),您可以这样做:

$id = isset($id) ? (int) $id : FALSE;
echo '<h1>', $id, '</h1>';

通常在您想要从$_GET中解耦并将其包装到请求对象的应用程序中:

class Request
{
    public function getParameter($name, $default = NULL)
    {
        return isset($_GET[$name]) ? $_GET[$name] : $default;
    }
    public function getParameterInt($name, $default = NULL)
    {            
        $value = $this->getParameter($name, NULL);
        return NULL === $value ? $default : (int) $value;
    }
}

$request = new Request();
$id = $request->getParameterInt('id');
echo '<h1>', $id, '</h1>';

完成后,您可以稍后将请求实现替换为另一个,以使用非http请求运行和测试您的应用程序。这也有助于更好地构建代码以实现可重用性。