检测URL是否等于值和preforme操作

时间:2018-04-13 14:39:06

标签: php url host

如果当前网址仅等于此值,我想采取行动:https://www.example.co.il/index.php?id=1000&2222

$url = 'https://www.example.co.il/index.php?id=1000';
        if(strpos($url,'&2222')) 
          {
        // Do something 
           echo "2222";
        }
        else
        {
        // Do Nothing
        }

3 个答案:

答案 0 :(得分:1)

要完全按照您的要求行事,请尝试此操作

INSERT INTO UserSettings
SELECT .... FROM #TempSettings 
WHERE SettingKey NOT IN(
SELECT UserSettings.SettingKey FROM UserSettings
INNER JOIN #TempSettings ON 
UserSettings.SettingKey = #TempSettings.SettingKey)


UPDATE UserSettings
SET UserSettings.SettingValue= #TempSettings.SettingValue FROM UserSettings
INNER JOIN #TempSettings ON 
UserSettings.SettingKey = #TempSettings.SettingKey

但是如果你只是想要检索id:

 //actual link (http or https)
$actualUrl = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$url        = 'https://www.example.co.il/index.php?id=1000';
if($actualUrl === $url) {
    //do something
}

答案 1 :(得分:0)

您可以使用$ _GET对象读取URL中的参数。它列出了查询字符串中的键和值,即在您的示例中,

https://www.example.co.il/index.php?id=1000

如果您使用:

print $_GET['id'];

你会看到100。

所以你可以简单地检查密钥2222是否存在:

if (isset($_GET['2222'])) { /** do something **/ }

请记住,只有在您实际读取运行脚本的URL时才会出现这种情况。

如果您只想匹配字符串中的值(无论是否为URL),那么在URL中搜索字符串的方法是合适的。

答案 2 :(得分:0)

使用此

// Assign your parameters here for restricted access
$valid_url = new stdClass();
$valid_url->scheme = 'https';
$valid_url->host = 'www.example.co.il';  
$valid_url->ids  = array(1000,2222);

$url = 'https://www.example.co.il/index.php?id=1000&2222';         
$urlinfo = parse_url($url); // pass url here
$ids = [];
parse_str(str_replace('&', '&id1=', $urlinfo['query']), $ids);

if($urlinfo['scheme'] == $valid_url->scheme && $urlinfo['host'] == $valid_url->host && count(array_intersect($valid_url->ids, $ids)) == count($valid_url->ids)){
    echo 'valid';
    // Do something 
}else{
    echo 'in valid';
    // error page
}