我将如何通过PHP中的eregi(“string”,$ _ GET [var])

时间:2013-04-29 19:03:28

标签: php string get eregi

if(eregi("string",$_GET[var])) {
  echo("<p>don't stop here!</p>");
  exit();
}
$_GET[var] = urldecode($_GET[var]);
if ($_GET[var] == "string")
  echo("<p>victorious!<p>");

我将如何使用 http://www.url.com/file.php?var=string 没有eregi(“string”,$ _ GET [var])捡起它?

2 个答案:

答案 0 :(得分:1)

对网址字符进行双重编码。这只能起作用,因为你在php已经调用了urldecode之后第二次在变量上运行urldecode(它会自动执行)。 file.php?var=%2573tring。 php已经在$ _GET值上运行urldecode。因此,php会将$_GET['var']视为%73tring(%25会转换为百分号)。您将获取值与不匹配的“字符串”进行比较。然后再将get值传递给urldecode,将get值保存到变量中(php是第一个)。 %73转换为s,使整个值string

答案 1 :(得分:0)

首先,您不需要为$ _GET

使用urldecode 自PHP 5.3.0起,eregi已被弃用。查看:http://php.net/manual/en/function.eregi.php

使用此代码

if($_GET[var] != "string") {
  echo("<p>don't stop here!</p>");
  exit();
}
if ($_GET[var] == "string")
  echo("<p>victorious!<p>");

如果你想忽略大小写区别,请在第一行使用它

$_GET[var] = strtolower( $_GET[var] );