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