php - 检查url是否包含参数

标签 php url

Possible Duplicate:
keeping url parameters during pagination

我想用php给当前url添加一个参数,但是如何知道url是否已经包含参数了?

示例:

foobar.com/foo/bar/index.php => foobar.com/foo/bar/index.php?myparameter=5 foob​​ar.com/index.php?foo=7 => foobar.com/index.php?foo=7&myparameter=5

主要问题是我不知道是否需要加一个“?”。

我的代码(在某处找到它,但不起作用):

<?php   if(/?/.test(self.location.href)){ //if url contains ?
    $url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]&myparameter=5";
} else {
    $url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]?myparameter=5"; 
}?>

最佳答案

URL 参数是从名为 $_GET 的全局变量接收的,该变量实际上是一个数组。因此,要知道 URL 是否包含参数,可以使用 isset() 函数。

if (isset($_GET['yourparametername'])) {
    //The parameter you need is present
}

之后,您可以创建需要附加到 URL 的此类参数的单独数组。喜欢:

if(isset($_GET['param1'])) {
    \\The parameter you need is present
    $attachList['param1'] = $_GET['param1'];
}
if(isset($_GET['param2'])) {
    $attachList['param2'] = $_GET['param2];
}

现在,要知道是否需要 ? 符号,只需计算这个数组即可

if(count($attachList)) {
    $link .= "?";
    // and so on
}

更新:

要知道是否设置了任何参数,只需计算 $_GET

if(count($_GET)) {
     //some parameters are set
}

关于php - 检查url是否包含参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10868818/

相关文章:

r - R 是否有任何包用于解析 URL 的各个部分?

php - 将 html <a> 放入 mysql 表文本字段 - url 注入(inject)?

php - 什么是 "Request Headers From Upload Stream"

php - 从第三个表中获取值(value)

PHPUnit异常测试,错误信息打乱结果输出

node.js - 使用 hapijs 制作基本路由过滤器

javascript - 如何有效地检查 url 是否有效(实际加载包含内容的页面)?

php - Zend Framework DB Complex Where 或条件

php - 您可以使用 PDO 将占位符放在查询的选定部分吗?

php - 如何在 PHP 中创建友好的 URL?