Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP URL获取参数,如果存在,是否替换?_Php_Url_Get - Fatal编程技术网

PHP URL获取参数,如果存在,是否替换?

PHP URL获取参数,如果存在,是否替换?,php,url,get,Php,Url,Get,尝试执行高级搜索选项,对不同选项进行排序ASC或DESC 示例URL: search.php?accom\u type=x&no\u rooms=x&rooms\u total=x&prop\u area=x&rent\u less=&rent\u more=&available=&go=search&sd=a 突出显示的粗体为&sd(排序方向)选项。前面的变量通过填写的表单传递 现在我有这样的链接 <a href="<?=$_SERVER['REQUEST_URI']?>&a

尝试执行高级搜索选项,对不同选项进行排序ASC或DESC

示例URL:

search.php?accom\u type=x&no\u rooms=x&rooms\u total=x&prop\u area=x&rent\u less=&rent\u more=&available=&go=search
&sd=a

突出显示的粗体为&sd(排序方向)选项。前面的变量通过填写的表单传递

现在我有这样的链接

<a href="<?=$_SERVER['REQUEST_URI']?>&sd=a">ASC</a>|<a href="<?=$_SERVER['REQUEST_URI']?>&sd=d">DESC</a>
我肯定我以前遇到过这个问题,但不太清楚我是如何解决的

如何检查GET是否已设置(如sd),如果已设置,则对其进行更改,否则,将其添加到URL的末尾,以生成上面显示的链接

编辑:也许屏幕截图有助于理解:

干杯,
Matt

您可以使用$\u GET superglobal来获取每个单独的GET变量。如果将其放入数组中,只需再次设置即可覆盖任何值:

$params = $_GET;
$params['sd'] = "whateveryoulike";
$paramString = http_build_query($params);

if语句应该可以完美地工作。使用
isset()
检查是否设置了变量。替换现有变量并不能解决问题。\u GETGreat谢谢,但我不完全确定如何执行此操作-是否不需要为每个链接重复此操作?我有很多这样的链接|
$params = $_GET;
$params['sd'] = "whateveryoulike";
$paramString = http_build_query($params);