2016-03-31 9 views
-1

私は渡されたページリンクとリクエストURIをチェックした関数を持っています。アクティブなメニュー状態のPHP Regex

function setActiveMenuState($pageLink) { 
    $requestUri = $_SERVER['REQUEST_URI']; 
    if ($pageLink == $requestUri) { 
     return "active"; 
    } 
} 

これは、このように働いた:

<li class="<?= setActiveMenuState("/find-a-job/"); ?>"> 

これは結構ですが、私は今のページのリンクが異なりますページ上のアクティブ状態を確認する必要があります。

など。

find-a-job 
find-a-job/jobs/test-job-1 
find-a-job/jobs/test-job-2 

同じアクティブ状態を持っているが、このリンクリスト要素を設定するためのすべての上記の必要性:

find-a-job/about-us 

がアクティブにそのリストの要素を設定しません。

私が試した例としてあります

if (preg_match($pageLink, $requestUri)) { 
    return "active"; 
} 

しかし、もちろんのことは-仕事を見つけているすべてのURLと一致します。

私はそう

に* /すべてのヘルプを/ジョブ・ジョブを見つけるワイルドカードアプローチのいくつかの並べ替えがありますか?

答えて

1

あなたはすでにこれは動作するはず/find-a-job/jobs/代わり/find-a-job/のするpreg_matchの使用と、それは

0

を動作するはずです、それを持って

preg_match("/find-a-(job)(?:\/\1s.*)?/", $input_line, $output_array); 

Regex Demo

関連する問題