0

我将如何尝试$_REQUEST基于preg_match. 该$_REQUEST值将保持15h56的值

抓住$_REQUESTS我目前正在使用的

foreach ($_REQUEST as $k => $v) {
    $a[] = "$k=$v";
}
$ref_val = implode("&", $a);

所以基本上我试图确定 $_REQUEST KEY 保存此数据15h56因为密钥将动态生成。

我尝试过以下操作

if(preg_match("/[0-9]n([0-9]+)[=]?(.*)$/", $ref_val, $matches)) {
$the_key_i_need = $matches[1];
4

1 回答 1

2

你为什么要使用preg_match()- 你有$_REQUEST数组中的数据,只需使用array_search()

$key = array_search( '15h56', $_REQUEST, true);

如果你$_REQUEST看起来像:

array( 'something_unknown_here' => '15h56')

然后在执行后$key会相等。something_unknown_herearray_search()

编辑:澄清后,该值似乎是未知的,但会匹配一个模式。因此,您可以迭代$_REQUEST以找到密钥,如下所示:

$found_key = null;
foreach ($_REQUEST as $k => $v) {
    if( preg_match( '#\d+h\d+#', $v)) {
        $found_key = $k;
        break;
    }
}

现在$found_key将要么是null,表示没有与模式匹配的值,要么是$_REQUEST某个值,它是进入的键$_REQUEST。请注意,这只会找到值与模式匹配的第一个键。

于 2013-01-10T21:34:23.197 回答