跟随隐藏的 link 和前面的数字链
Follow cloaked link with with chain of numbers to front
我正在构建一个小的伪装 link 脚本,但我需要找到每个具有不同字符串编号的脚本,例如('mylinkname1'-1597
)。顺便说一句:数字总是整数。
问题是我从来不知道字符串编号,所以我想使用正则表达式,但出现了问题。
这是我现在得到的:
$pattern = '/-([0-9]+)/';
$v = $_GET['v']
if ($v == 'mylinkname1'.'-'.$pattern) {$link = 'http://example1.com/';}
if ($v == 'mylinkname2'.'-'.$pattern) {$link = 'http://example2.com/';}
if ($v == 'mylinkname3'.'-'.$pattern) {$link = 'http://example3.com/';}
header("Location: $link") ;
exit();
这里根本不需要正则表达式,只需在连字符上拆分字符串并仅匹配它,我还建议您在 3 或 if\eleses:
时使用 case\switch
$v=explode('-',$_GET['v']);
switch ($v[0]) {
case "mylinkname1":
$link = 'http://example1.com/';
break;
case "mylinkname2":
$link = 'http://example2.com/';
break;
case "mylinkname3":
$link = 'http://example3.com/';
break;
default:
echo "something not right";
}
header("Location: $link") ;
exit();
破折号已经在模式中,因此您不必在 if 子句中添加它。
您可以省略数字 -[0-9]+
周围的捕获组,并且您必须使用带有 preg_match 的模式。
您可以将 if 语句的格式更新为:
$pattern = '-[0-9]+';
if (preg_match("/mylinkname1$pattern/", $v)) {$link = 'http://example1.com/';}
为了防止 mylinkname1-1597
成为更大单词的一部分,您可以用锚点 ^
和 $
围绕模式来断言字符串或单词边界的开始和结束 \b
我正在构建一个小的伪装 link 脚本,但我需要找到每个具有不同字符串编号的脚本,例如('mylinkname1'-1597
)。顺便说一句:数字总是整数。
问题是我从来不知道字符串编号,所以我想使用正则表达式,但出现了问题。
这是我现在得到的:
$pattern = '/-([0-9]+)/';
$v = $_GET['v']
if ($v == 'mylinkname1'.'-'.$pattern) {$link = 'http://example1.com/';}
if ($v == 'mylinkname2'.'-'.$pattern) {$link = 'http://example2.com/';}
if ($v == 'mylinkname3'.'-'.$pattern) {$link = 'http://example3.com/';}
header("Location: $link") ;
exit();
这里根本不需要正则表达式,只需在连字符上拆分字符串并仅匹配它,我还建议您在 3 或 if\eleses:
时使用 case\switch$v=explode('-',$_GET['v']);
switch ($v[0]) {
case "mylinkname1":
$link = 'http://example1.com/';
break;
case "mylinkname2":
$link = 'http://example2.com/';
break;
case "mylinkname3":
$link = 'http://example3.com/';
break;
default:
echo "something not right";
}
header("Location: $link") ;
exit();
破折号已经在模式中,因此您不必在 if 子句中添加它。
您可以省略数字 -[0-9]+
周围的捕获组,并且您必须使用带有 preg_match 的模式。
您可以将 if 语句的格式更新为:
$pattern = '-[0-9]+';
if (preg_match("/mylinkname1$pattern/", $v)) {$link = 'http://example1.com/';}
为了防止 mylinkname1-1597
成为更大单词的一部分,您可以用锚点 ^
和 $
围绕模式来断言字符串或单词边界的开始和结束 \b