2016-09-23 57 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