2016-12-15 5 views
2

私のウェブサイトの特定のページでナビゲーションバーのリンクを非表示にしようとしています。私は1ページで動作するシステムを持っていますが、if文に複数の文字列を追加しようとすると動作しません。誰でもこれを解決する方法のアドバイスを提供できますか? 1つのページにリンクを隠しPHPを使用してURL内の複数の文字列を確認してください

ワーキング文は:

<?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>'; 
    } 
?> 

私が追加しようとしている以下:

if (strpos($url, 'terms-of-use', 'case-studies', 'cookie-policy', 'privacy-policy') !== false) { 
+0

BTW ... * "if ... else何もしない" *、単純に条件を逆転する:if(strpos(...)=== false){echo ...} '! – deceze

+0

@deceze私はこれを試して、リスト内のページだけでなく、すべてのページのリンクを削除しました。 –

答えて

1

確認のため1つの文字列に含まれる複数の値に対して、正規表現を使用することができます。このよう

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

$baz"foo""bar"含まれている場合、これはチェックします。

+1

これは完全に機能しました。どうもありがとうございます。私はこれを7分で答えにします。 (私は待たなければならない) –

+1

あなたは大歓迎です。 – Mason

0

これはあまりにも動作するはずです:

$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; 

}

+1

これは機能しませんが、あなたがしようとしていることのコンセプトはまさに私がやろうとしていることです。 –

関連する問題