2016-03-31 5 views
-1

Ich habe eine Funktion, die eine Überprüfung auf der Seite Link, die ich übergeben und die Anfrage-URI.PHP Regex für aktive Menü-Status

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

Dies wie folgt gearbeitet:

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

Das ist in Ordnung, aber ich brauche jetzt einen aktiven Zustand auf einer Seite, wo die Seite Link variieren zu überprüfen.

z.

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

All oben genannte Notwendigkeit, das Listenelement, um den gleichen aktiven Zustand haben, aber auf diesen Link:

find-a-job/about-us 

Sollte das diese Liste Element aktiv nicht gesetzt.

Ich habe als ein Beispiel versucht:

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

Aber das natürlich wird jede URL übereinstimmen, die einen Arbeitsplatz finden-hat.

Ich brauche eine Art Wildcard Ansatz so find-a-Job/Jobs/*

Jede Hilfe?

Antwort

1

Sie haben es bereits mit dem preg_match Einsatz /find-a-job/jobs/ statt /find-a-job/, sollte es

0

Diese Arbeit sollte

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

Regex Demo

arbeiten