2016-04-27 17 views
-2

Ich versuche, durch ein Array von URI-Pfaden zu durchlaufen, um einen iOS SmartBanner auf diesen Seiten einzufügen. Eine der Seiten ist dynamisch und folgt dem Pfad mit einer ID. So unterscheide ich, ob es sich um eine Detailseite und nicht um eine allgemeine Liste handelt.RegEx in PHP-Array

Meine Herausforderung ist, dass ich identifizieren muss der Pfad wird gefolgt von '/ num'.

Hier ist meine PHP-Code:

<?php 
$urls = array("/app/explore", "/app/dashboard", "app/members", "/app/account-settings", "/app/jobs"); 
    foreach ($urls as $key => $value) { 
    if($_SERVER['REQUEST_URI'] === $value) { ?> 
     <meta name="apple-itunes-app" content="app-id=1111111111"> 
    <?php } 
    } 
?> 

Zuerst habe ich das Array von Pfaden erstellen, die ich ansprechen möchten. Allerdings sollte der letzte Pfad "app/jobs" eigentlich "app/jobs/{numeric id}" sein. Mit anderen Worten "app/jobs/1234", wobei "1234" eine beliebige Nummer sein kann.

Also muss ich Regex irgendwie für das letzte Objekt im Array verwenden, um "app/jobs/(beliebige Zahl)" darzustellen.

Kann jemand beraten, wie ich dies erreichen könnte?

Wäre es einfacher, das herauszunehmen und eine separate if-Anweisung zu verwenden?

Danke für die Hilfe !!

+0

Haben Sie schon irgendwelche Regexs ausprobiert? Vielleicht '~ app/jobs/\ d + ~'? – chris85

+0

Hallo Chris 85, willst du das einfach als String-Literal zum Array hinzufügen, so: $ urls = array ("/ app/explore", "/ app/dashboard", "app/members", "/ app/account-settings "," app/jobs/\ d + ~ "); Wie wird der Browser wissen, um den Regex-Teil '\ d + ~' zu analysieren? Ich dachte, dass ich dafür vielleicht einen Funktionsaufruf hinzufügen müsste: $ urls = array ("/ app/explore", "/ app/dashboard", "app/members", "/ app/account-settings", "/ app/jobs" + evaluieren ('\ d + ~')); Wie funktioniert das? Vielen Dank!! – cnak2

Antwort

0

können Sie verwenden preg_match Hier ist das einfache Beispiel:

echo preg_match("/app\/jobs\/(\d+)/","app/jobs/1234/"); //this will return 1 
echo preg_match("/app\/jobs\/(\d+)/","app/jobs"); //this will return 0 
echo preg_match("/app\/jobs\/(\d+)/","app/jobs/aaa/"); //return 0 

preg_match Willen Rückkehr 1, wenn der Regex mit bestimmten Zeichenfolge entspricht und 0 zurückgeben, wenn es nicht den Fall ist.