使用PHP检查URL中的多个字符串

使用PHP检查URL中的多个字符串,php,Php,我试图在我的网站的某些页面上隐藏导航栏上的链接。我有一个可用于一个页面的系统,但当我尝试向if语句添加多个字符串时,它不起作用。有人能就如何解决这个问题提供建议吗 在一页上隐藏链接的工作语句: <?php $url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; if (strpos($url, 'terms-of-use') !== false) { } else {

我试图在我的网站的某些页面上隐藏导航栏上的链接。我有一个可用于一个页面的系统,但当我尝试向if语句添加多个字符串时,它不起作用。有人能就如何解决这个问题提供建议吗

在一页上隐藏链接的工作语句:

<?php
    $url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

    if (strpos($url, 'terms-of-use') !== false) {

    }

    else {
        echo '<li class="nav-item"><a class="nav-link" href="'. basename($_SERVER['PHP_SELF']) .'" title="Contact Us">Contact Us</a></li>';
    }
?>
这也应该起作用:

$needles = array('terms-of-use', 'case-studies', 'cookie-policy', 'privacy-policy');
foreach($needles as $what) {
    if(($pos = strpos($url, $what)) !==false ) {
        return true;
}
return false;

}

要检查一个字符串包含的多个值,可以使用Regex

像这样:

if(preg_match('(foo|bar)', $baz) === 1) { } 

这将检查
$baz
是否包含
“foo”
“bar”

这不起作用,但您正在尝试的概念正是我正在尝试的。这非常有效。非常感谢你。我会在7分钟内把这个标记为答案。(我必须等待)顺便说一句…而不是“如果…不做其他事情做某事”,简单地反转条件:
if(strpos(…)==false){echo…}
@deceze我尝试了这个,它删除了每个页面上的链接,而不仅仅是列表中的页面。
if(preg_match('(foo|bar)', $baz) === 1) { }