确定从字符串中过滤掉的ID列表

时间:2016-06-15 12:45:26

标签: php string parsing

所以我正在使用一个允许开发人员应用过滤器的API。

目前有/ users?filters = user_id:10,20,30,40等终点,但它也接受更多的在线过滤器。例如

/用户PARAMS = USER_ID:10,20,30,名称:约翰,日期:20160601

我想知道的是确定一些事情的最好方法。

如果设置了user_id过滤器。只从过滤器中获取ID。

2 个答案:

答案 0 :(得分:1)

  <?php
     //Make sure the filter is set
     if(!empty($_GET['filters'])){
         $filters = $_GET['filters'];
         if(strpos($filters,'user_id') >= 0){
            preg_match('/user_id:[0-9 ,]+/',$filters,$matches);
            if(count($matches[0])){
                //Parse IDs
                $ids = substr($matches[0],(strpos($matches[0],":")+1),(strlen($matches[0])-strpos($matches[0],":")));
                $ids = explode(',',$ids);
                //In case we take in an extra comma
                if($ids[count($ids)-1] == ""){
                   unset($ids[count($ids)-1]);
                }
                //Do something with IDs here
                var_dump($ids);
             }
         }else{
            echo 'not set';
         }
     }else{
           echo 'No filters';
     }

答案 1 :(得分:0)

您可以尝试isset()explode()

的组合