我可以使用不同的键,相同的值使用多个$ _GET吗?

时间:2015-11-13 05:09:10

标签: php google-custom-search

我在网上搜索但没有得到实际解决方案。我发现“多个$ _GET具有相同的键,不同的值?”但我想知道如何设置不同的键具有相同的值,如?t = helloWorld&?q = helloWorld ,我知道这是可能的,但我不知道实现这一目标的程序。任何人都可以帮助我。?

所以,我的问题是 我想一起使用www.omdbapi.com API和Google CSE,其中omdb需要键'?t ='和Google CSE需要'?q ='我在www.moviesnight.club上实现了两者但是它不起作用因为我不能复制密钥'?t ='的值'?q ='。

2 个答案:

答案 0 :(得分:0)

解决方案1:

您应该将参数的值存储在变量中,并检查$_GET中哪个键可用:

$queryValue = '';

// Fetch parameter for omdbapi
if(isset($_GET['t'])) {
    $queryValue = $_GET['t'];
}

// Fetch parameter for Google CSE
if(isset($_GET['g'])) {
    $queryValue = $_GET['g'];
}

// Optional:
if(empty($queryValue)) {
    die('No parameter given.');
}

// Use the value stored in $queryValue

解决方案2 :(如果您无法使用$queryValue之类的变量

$_GET['g'] = isset($_GET['g']) ? : $_GET['t'];
$_GET['t'] = isset($_GET['t']) ? : $_GET['g'];

答案 1 :(得分:0)

我没有找到任何只使用PHP的解决方案,所以JavaScript帮助我完成它。请检查以下代码段。

<强>的JavaScript

function changeText(containerId) {
    var datatext = document.getElementById('omdbBox').value;
    var collection = document.getElementById(containerId).getElementsByTagName('INPUT');
    for (var x = 0; x < collection.length; x++) {
        if (collection[x].type.toUpperCase() == 'TEXT') collection[x].value = datatext;
    }
}

<强> CSS

#cseBox {display: none;}

PHP (要打印提交的URL,您在使用它时不必使用此PHP代码,它仅用于测试目的。它将确保代码正常工作。)< / p>

<?php
if(isset($_GET['search'])){
    echo 'http://moviesnight.club/?<b>t='.$_GET['t'].'&q='.$_GET['q'].'</b>&search=';
}
?>

<强> HTML

<form method="get">
    <input id="omdbBox" type="text" autocomplete="off" name="t" onkeyup="changeText('cseBox')">
    <div id="cseBox">
        <input type="text" name="q">
    </div>
    <input type="submit" name="search">
</form>

同时检查实时 PhpFiddle