引荐来源网址中的变量ID

时间:2016-09-23 11:03:15

标签: php arrays

我想检查引用者是否在数组中声明的有效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)。

怎么做?

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式。

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

然后你可以使用IF in_array或preg_match ..

答案 1 :(得分:-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
}