zoukankan      html  css  js  c++  java
  • 关键词多空格处理

    public function keyWord($condition) {
    
            //如果搜索的是上次的计算的结果,就直接返回
            $momon = Model()->table('goods')->limit(false)->field('goods_name')->select();
            if(is_array($condition) && !empty($condition['goods_name|goods_jingle']) && !empty($momon)) {
                $key = $condition['goods_name|goods_jingle'][1];
                $key = substr($key,1);
                $key = substr($key,0,-1);//用户输入关键字
                $key = $this->removePlace($key);
                $str = $this->tolower($key);
    
                //将用户关键词去空格和小写后,与数据库的商名比对,找出一条相似的字符串
                foreach($momon as $k=>$v) {
                    $data_lower = $this->tolower($v['goods_name']);//将要比对的数据库商品名小写,去对比,小写的用户关键字
                    $v = $this->removePlace($data_lower);//将数据库的商品名清除空格
                    $result = strpos($v, $str);
                    if($result !== false) {
                        $father_str_lower = $data_lower;
                        $father_str       = $v;
                        $chil_str         = $str;
                        break;
                    }
                }
                if(!empty($chil_str)) {
                    $check_arr = explode(' ',$father_str_lower);
                    foreach($check_arr as $v) {
                        $chil_str = preg_replace("/".$v."/", " ".$v." ", $chil_str);
                        $chil_str = preg_replace('/s{2,}/',' ',$chil_str);
                        $chil_str = trim($chil_str);
                    }
                    $_SESSION['chil_str'] = $chil_str;
                    $condition['goods_name|goods_jingle'][1] = "%".$chil_str."%";
                }
            }
            return $condition;
        }
        /*
         *中英字符串转小写
         * retun str
         * */
         public function tolower($a) {
            $b = str_split($a, 1);  
               $r = '';  
               foreach($b as $v){  
                   $v = ord($v);  
                   if($v >= 65 && $v<= 90){  
                       $v += 32;  
                   }  
                   $r .= chr($v);  
               }  
               return $r;  
         }
        /*
         * 去除空格
         * return str
         */
        public function removePlace($str) {
            $str = preg_replace("/s/is", "",$str);
            return $str;
        }
        /*
         *数据库所有商品名称 
         * return arr
         */
        public function allLowner_goodsName() {
            $data = Model()->table('goods')->limit(false)->select();
    
            return $data;
        }
  • 相关阅读:
    spring data jpa序列化问题
    观察者模式(bilibili)
    观察者模式之Spring: event和listener
    观察者模式之Observer和Subject
    Mybatis Plus官网
    Hackinglab之注入关
    利用GitHub进行团队开发
    IIS安装Web时数据库参数配置文件写入权限验证失败
    流量分析基础篇
    Mysql启动错误1045(28000)
  • 原文地址:https://www.cnblogs.com/bubaya/p/7565038.html
Copyright © 2011-2022 走看看