PHP帖子名称通配符 - $ _POST ['var _'。*];

时间:2011-02-25 00:13:16

标签: php

我是否可以使用某种通配符来创建以特定字符串开头的POST变量?

基本上,我试图捕获包含bSortable_(通配符)作为名称的任何POST。

bSortable_1 bSortable_2 bSortable_3

我正在为库jquery数据表执行此操作。

http://www.datatables.net/usage/server-side

4 个答案:

答案 0 :(得分:5)

将变量发布到数组中,而不是在过滤时迭代它。

foreach($_POST as $key => $value) {
  $pos = strpos($key , "bSortable_");
  if ($pos === 0){
    // do something with $value
  }
}

答案 1 :(得分:3)

使用name="bSortable[name_here]"或其中的一些排列。 PHP可以接受多维POST参数。

如果那是不可能的,那么你将不得不循环使用可用的POSTed变量,并检查键名,如下所示:

<?php foreach($_POST as $key => $val) if(strpos($key, 'bSortable_') === 0) .... ?>

答案 2 :(得分:0)

哟想创建或阅读?不清楚你的问题。

阅读,这是我的PHP 5.3解决方案

$sortables = array_filter($_POST, function($e){
  return preg_match('/^bSortable/', $e);
});

答案 3 :(得分:0)

你也可以这样做:

foreach($_POST as $key => $value){
    if(substr($key,0,10) == 'bSortable_'){
        //Do something here with the $value.
    }
}

现在你可以确保它确实获得了POST键的第一部分,而不是键中间的某个部分。