Php 谷歌如何处理两个相同的URL参数和不同的值?

Php 谷歌如何处理两个相同的URL参数和不同的值?,php,get,Php,Get,只要看看这个网址,你就会明白我的意思 https://www.google.com/search?q=site%3Aphpjs.org&q=date 当我转到那个url时,谷歌搜索栏中的搜索词是site:phpjs.org date Google如何将这两个参数“变形”在一起,以及如何在PHP中实现这一点?Google使用相同的q变量来完成相同的任务,而不是对空间进行编码 不幸的是,PHP没有内置的功能来实现这一点,因为同一查询字符串参数的连续出现将覆盖第一个查询字符串参数,除非使用[

只要看看这个网址,你就会明白我的意思

https://www.google.com/search?q=site%3Aphpjs.org&q=date
当我转到那个url时,谷歌搜索栏中的搜索词是
site:phpjs.org date


Google如何将这两个参数“变形”在一起,以及如何在PHP中实现这一点?

Google使用相同的
q
变量来完成相同的任务,而不是对空间进行编码

不幸的是,PHP没有内置的功能来实现这一点,因为同一查询字符串参数的连续出现将覆盖第一个查询字符串参数,除非使用
[]
后缀

你需要这样的东西:

$params = array();
foreach (explode('&', $_SERVER['QUERY_STRING']) as $param) {
    list($name, $value) = explode('=', $param, 2);
    $params[] = array(urldecode($name) => urldecode($value));
}
$params的内容

array(
    array('q' => 'site:phpjs.org'),
    array('q' => 'date'),
);
或者,可以将循环体更改为:

$params[urldecode($name)][] = urldecode($value);
$params
更改为:

array('q' => array('site:phpjs.org', 'date'));
这样做会更容易:

join(' ', $params['q']);
// "site:phpjs.org date"

谷歌没有对空间进行编码,而是使用相同的
q
变量来完成相同的任务

不幸的是,PHP没有内置的功能来实现这一点,因为同一查询字符串参数的连续出现将覆盖第一个查询字符串参数,除非使用
[]
后缀

你需要这样的东西:

$params = array();
foreach (explode('&', $_SERVER['QUERY_STRING']) as $param) {
    list($name, $value) = explode('=', $param, 2);
    $params[] = array(urldecode($name) => urldecode($value));
}
$params的内容

array(
    array('q' => 'site:phpjs.org'),
    array('q' => 'date'),
);
或者,可以将循环体更改为:

$params[urldecode($name)][] = urldecode($value);
$params
更改为:

array('q' => array('site:phpjs.org', 'date'));
这样做会更容易:

join(' ', $params['q']);
// "site:phpjs.org date"

它将始终使用所提供url中最后一个变量的值。这更像是一种标准方式,而且不仅仅是谷歌以这种方式处理。您可以通过在根目录中创建一个名为
index.php
的页面来自己尝试。然后通过
http://example.com/index.php?q=John&q=Billy
。在index.php中添加以下内容:


结果是使用了最后一个值,除了google将URL剥离并将变量的值合并在一起。我希望这是有意义的

它将始终使用所提供url中最后一个变量的值。这更像是一种标准方式,而且不仅仅是谷歌以这种方式处理。您可以通过在根目录中创建一个名为
index.php
的页面来自己尝试。然后通过
http://example.com/index.php?q=John&q=Billy
。在index.php中添加以下内容:


结果是使用了最后一个值,除了google将URL剥离并将变量的值合并在一起。我希望这是有意义的

类似的问题()@lobostome-whoops,没有看到。类似的问题()@lobostome-whoops,没有看到。