- foreach($where as $key = >$val) {
- if ('_id' != $key && 0 === strpos($key, '_')) {
- // 解析特殊条件表达式
- // 原 $query=$this->parseThinkWhere($key,$val);
- $query = array_merge($query, $this - >parseThinkWhere($key, $val));
- } else {
- // 查询字段的安全过滤
- if (!preg_match('/^[A-Z_\|\&\-.a-z0-9]+$/', trim($key))) {
- throw_exception(L('_ERROR_QUERY_').':'.$key);
- }
- $key = trim($key);
- if (strpos($key, '|')) {
- $array = explode('|', $key);
- $str = array();
- foreach($array as $k) {
- $str[] = $this - >parseWhereItem($k, $val);
- }
- $query['$or'] = $str;
- }
- elseif(strpos($key, '&')) {
- $array = explode('&', $key);
- $str = array();
- foreach($array as $k) {
- $str[] = $this - >parseWhereItem($k, $val);
- }
- $query = array_merge($query, $str);
- } else {
- $str = $this - >parseWhereItem($key, $val);
- $query = array_merge($query, $str);
- }
- }
- }
来源: https://www.php1.cn/detail/php-67ffb143f3.html