引用URL中的变量ID


Variable ID in referrer URL

我想检查引用者是否在数组中声明的有效url之一:

$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/

其中***是一个数字(从1到1000000)。

如何做到这一点?

你可以使用regexp

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

那么你可以使用IF in_array或preg_match..

完成,这就是我要找的:

$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
}