读取最后一个括号之间的数

时间:2014-09-08 09:37:10

标签: php cakephp

我在cakePHP中有一个控制器动作,使用POST请求以下列格式发送数据;

address?level=node[Job][qs3]

php或cakePHP中最优雅的方式是从GET请求中返回值“qs3”。

目前当我输出$ _GET ['level']的值时,我将返回“node [Job] [qs3]”。我只想返回“qs3”。

3 个答案:

答案 0 :(得分:1)

您也可以使用此

的正则表达式
preg_match_all("/\[([^\]]*)\]/", $_GET['level'], $matches);
echo $matches[1][1];

你可以这样尝试

$level = explode("[",$_GET['level']);
echo trim(end($level), "]");

答案 1 :(得分:0)

可能:

$_GET['level']['node']['Job']['qs3']

或者如果Job是一个变量

$_GET['level']['node'][$Job]['qs3']

或用$ _POST替换$ _GET(不确定已理解)

无论如何,print_r($ _ REQUEST)将帮助你解决这个问题

答案 2 :(得分:0)

这是一种肮脏的做法,它具有0%的优雅,因此无限循环:

$text = "address?level=node[Job][qs3]";
$temp = $text;
while (true) {
    $begin = explode("[", $temp, 2);
    if (isset($begin[1])) {
        $end = explode("]", $begin[1], 2);
        $result = $end[0];
        $temp = $end[1];
    } else {
        break;
    }
}
echo $result;

PHPFiddle:http://phpfiddle.org/main/code/8hz7-bstu