2016-09-23 55 views
0

我要檢查,如果引用是在一個數組中聲明的有效網址:變量ID

$ref = $_SERVER['HTTP_REFERER']; 

$ref_arr = array (
    SITE_URL . 'nouvelle-annonce/', 
    SITE_URL . 'nouvelle-annonce/matieres/', 
    SITE_URL . 'nouvelle-annonce/lieu/' 
); 

if ($ref == '' || !in_array($ref, $ref_arr)) { 
    // Fail 
} else { 
    // Pass 
} 

現在,數組中我想添加類似:

SITE_URL . 'annonce/***/modifier/matieres/ 

***是一個數字(比如說1000000)。

如何做到這一點?

回答

0

您可以使用正則表達式。

$pattern = "/^(annonce\\/)([\\d]{1,3})/"; 
$ref = "annonce/999/modifier/matieres/"; 
preg_match($pattern, $ref, $matches); 

然後你可以,如果in_array OR的preg_match使用..

-1

完成的,這裏是我正在尋找:

$ref = $_SERVER['HTTP_REFERER']; 

$ref_arr = array (
    SITE_URL . 'nouvelle-annonce/', 
    SITE_URL . 'nouvelle-annonce/matieres/', 
    SITE_URL . 'nouvelle-annonce/lieu/' 
); 

if (isset($_GET['annonce-id'])) { 
    $ref_arr[] = SITE_URL . 'annonce/' . $_GET['annonce-id'] . '/modifier/matieres/'; 
    $ref_arr[] = SITE_URL . 'annonce/' . $_GET['annonce-id'] . '/modifier/lieu/'; 
} 

if ($ref == '' || !in_array($ref, $ref_arr)) { 
    // Fail 
} else { 
    // Pass 
} 
+0

如果是這樣的答案,那麼你的問題是不明確。 – symcbean