getContext()->getRequest();
      //获取产品类别
      $sql = "select cid,pname from lkt_product_class where sid = 0 ";
      $r = $db->select($sql);
      $res = '';
      foreach ($r as $key => $value) {
            $c = '-'.$value->cid.'-';
            $res .= '';
            //循环第一层
            $sql_e = "select cid,pname from lkt_product_class where sid = $value->cid";
            $r_e = $db->select($sql_e);
            if($r_e){
                $hx = '-----';
                foreach ($r_e as $ke => $ve){
                   $cone = $c . $ve->cid.'-';
                   $res .= '';
                   //循环第二层
                   $sql_t = "select cid,pname from lkt_product_class where sid = $ve->cid";
                   $r_t = $db->select($sql_t);
                    if($r_t){
                        $hxe = $hx.'-----';
                        foreach ($r_t as $k => $v){
                           $ctow = $cone . $v->cid.'-';
                           $res .= '';
                        }
                    }
                }
            }
        }
    
      $request->setAttribute("ctype",$res);
      return View :: INPUT;
    
    }
    public function execute() {
      $db = DBAction::getInstance();
      $request = $this->getContext()->getRequest();
      $url = $request->getParameter('url');
      $product_class = $request->getParameter('product_class');
      preg_match('|\.(.*).com|isU',$url, $type);
      $type = $type[1];
      if ($type == "1688") {
          $ret = $this->getalbb($url,$product_class);
   
        }else if($type == 'taobao'){
          $ret = $this->get_item_taobao($url,$product_class);
        }else{
           header("Content-type:text/html;charset=utf-8");
            echo "";
        }
    }
    public function getRequestMethods(){
        return Request :: POST;
    }
    function get_item_taobao($url,$product_class){//淘宝数据抓取
      if(!empty($product_class)){
        $dte['product_class']=$product_class;
     }else{
         $dte['product_class']='-1-';
     }
      $db = DBAction::getInstance();
      $text=file_get_contents($url);//将url地址上页面内容保存进$text
       preg_match_all('|
', $title1); 
       $dte['product_title']=$title2[0];//产品标题
       $sql = "select * from lkt_product_list where product_title = '$title2[1]'";//查询是否有相同名称的商品
        $r001 = $db->select($sql);
        if(!empty($r001)){
          echo "数据库里有该商品";
           return  ;
           header("Content-type:text/html;charset=utf-8");
            echo "";
           
        }
      preg_match('/
]*id="J_ImgBooth"[^r]*rc=\"([^"]*)\"[^>]*>/', $text, $pic); //产品主图片
      if(!empty($pic[1])){
          $img = $this->getImage('http:'.$pic[1]);//储存图片
          $dte['imgurl'] = $img['file_name'];
       }
       $chicun = $this->chicun($text);//淘宝商品对应的商品尺寸
       $color = $this->color($text);//淘宝商品对应的商品规格颜色包括图片
       
       if(!empty($chicun['chicun'])){//判断尺寸数组是否存在
        $type1 = $chicun['type'] ;
        foreach ($chicun['chicun'] as $key01 => $value01) {
          if(!empty($value01)){//判断数组里单个值是否存在
            if(!empty($color)){//判断颜色和图片是否存在
              foreach ($color as $key02 => $value02) {
                if(!empty($value02)){//判断单个值是否存在
                  $chicunid =$value01['chicunid'];
                  $idd=explode(':', $chicunid); 
                  if($type1 == 1 ){
                    $keyy = $idd[0];
                  }else{
                    $keyy = '';
                  }
                  
                  $chicun =$value01['chicun']; 
                  $colorid = $value02['colorid'] ;
                  $img = $value02['img'];
                  $colorname = $value02['colorname'];
                      if($type1 == 1 ){//尺寸
                        $ids = $idd[1].';'.$colorid;
                      }elseif ($type1 == 2) {//高度
                        $ids = $colorid.';'.$chicunid;
                      }else{
                         $ids = $idd[1].';'.$colorid;
                      }
                  
                  $price = $this->price($text,$keyy);//淘宝商品对应的商品规格价格及ID
                  foreach ($price as $key03 => $value03) {
                      $id = $value03['id'];
                      
                      if ($ids == $id) {
                        $pricee[$key03]['id'] = $id;
                        $pricee[$key03]['price'] = $value03['price'];
                        $pricee[$key03]['chicun'] = iconv('GBK','UTF-8', $chicun);
                        $pricee[$key03]['img'] = $img;
                        $pricee[$key03]['colorname'] =  $colorname;
                        $pricee[$key03]['color'] = $colorname; 
                      }
                  }
                }else{
                  unset($color[$key02]);
                }
              }
            }
          }else{
            unset($chicun[$key01]);//单个值不存在就清除掉
          }
        }
       }else{//没有尺寸
          if(!empty($color)){//判断颜色和图片是否存在
              foreach ($color as $key02 => $value02) {
                
                if(!empty($value02)){//判断单个值是否存在
                  $keyy = '';
                  $colorid = $value02['colorid'] ;
                  $img = $value02['img'];
                  $colorname = $value02['colorname'];
                  $ids =$colorid;
                  $price = $this->price($text,$keyy);//淘宝商品对应的商品规格价格及ID
                  foreach ($price as $key03 => $value03) {
                      $id = $value03['id'];
                     
                      if ($ids == $id) {
                        $pricee[$key03]['id'] = $id;
                        $pricee[$key03]['price'] = $value03['price'];
                        $pricee[$key03]['chicun'] = '默认';
                        $pricee[$key03]['img'] = $img;
                        $pricee[$key03]['colorname'] = $colorname;
                        $pricee[$key03]['color'] = $colorname;
                      }
                  }
                }else{
                  unset($color[$key02]);
                }
              }
            }else{//没有尺寸,没有颜色
                 $keyy = '';
                  $price = $this->price($text,$keyy);//淘宝商品对应的商品规格价格及ID
                        $pricee[0]['price'] = $price['price'];
                        $pricee[0]['chicun'] = '默认';
                        $pricee[0]['img'] = '';
                        $pricee[0]['colorname'] = '默认';
                        $pricee[0]['color'] = '默认';
             
                      
                      
                  
            }
       }
       $dte['arr'] =$pricee;
       $dte['content']="商品介绍";
       return $this -> save_goods($dte);
    
    }
    function price($text,$keyy){//获取淘宝商品对应价格及ID
      preg_match_all('|valItemInfo      : {(.*),propertyMemoMap: {|isU',$text,$price);
      
      if(!empty($price[1][0])){
          preg_match_all('|skuMap     : (.*)}}|isU',$price[1][0],$price001);
       if (!empty($keyy)) {
            $kee = '";'.$keyy;
             $dd= explode($kee , $price001[1][0]);//价格
             foreach ($dd as $key01 => $value01) {
                 if(!empty($value01) && $value01 !='{'){
                    $dd1 = 'id'.$value01;
                    
                    preg_match_all('|id:(.*);":|isU',$dd1,$idss);
                    preg_match_all('|{(.*),"oversold":false|isU',$dd1,$idss1);
                    $arr =  json_decode('{'.$idss1[1][0].'}');
                    $pricee[$key01]['id'] = $idss[1][0];
                    $pricee[$key01]['price'] = $arr->price;
                     }else{
                      unset($dd['key01']);
                     }
              }
                 }else{
                    $kee = '";';
                    $dd= explode($kee , $price001[1][0]);//价格
                    foreach ($dd as $key01 => $value01) {
                               if(!empty($value01) && $value01 !='{'){
                                  $dd1 = 'id'.$value01;
                                  
                                  preg_match_all('|id(.*);":|isU',$dd1,$idss);
                                  preg_match_all('|{(.*),"oversold":false|isU',$dd1,$idss1);
                                  
                                  $arr =  json_decode('{'.$idss1[1][0].'}');
                                  $pricee[$key01]['id'] = $idss[1][0];
                                  $pricee[$key01]['price'] = $arr->price;
                               }else{
                                unset($dd['key01']);
                               }
                      }
                 }
          }else{
             preg_match_all('||isU',$text,$price);
              $pricee['price'] = $price[1][0];
          }
    
     return $pricee;
   }
    function chicun($text){//获取淘宝商品对应的尺码
        preg_match_all('|(.*)
|isU',$text, $ccc);//商品尺寸
        preg_match_all('|(.*)
|isU',$text, $ccc1);//商品高度
        if(!empty($ccc[0][0])){
            $cc = $ccc[0][0];
            $arr['type'] = 1;
        }elseif(!empty($ccc1[0][0])){
            $cc = $ccc1[0][0];
            $arr['type'] = 2;
        }else{
          $cc = '';
            $arr['type'] = 3;
        }
        
        if(!empty($cc)){
          preg_match_all('|
|isU',$cc, $cc1);
          if(!empty($cc1)){
            foreach ($cc1[0] as $key => $value) {
             $dd =  preg_replace('/\"(.*?)\"/s', "\${1}",$value);
             preg_match_all('|(.*)|isU',$dd, $cc2);
              $arr['chicun'][$key]['chicunid'] = $cc2[1][0];//尺寸对应的ID
              preg_match_all('|(.*)|isU',$value, $chicun);
              $arr['chicun'][$key]['chicun'] = $chicun[1][0];
            }
          }
        }else{
          $arr = '';
        }
        return $arr;
    }
    function color($text){//淘宝商品对应的商品规格颜色包括图片
          preg_match_all('|(.*)
|isU',$text, $color);
          if(!empty($color[1][0])){
              preg_match_all('||isU',$color[1][0], $color1);
              if(!empty($color1)){
                    foreach ($color1[1] as $key => $value) {
                     $dd =  preg_replace('/\"(.*?)\"/s', "\${1}",$value);
                     preg_match_all('|(.*)|isU',$dd, $color2id);
                      $arr[$key]['colorid'] = $color2id[1][0];//尺寸对应的ID
                      $urlimg = $color2id[1][2];//尺寸对应的图片地址
                      if(!empty($urlimg)){
                        preg_match_all("/(?:\()(.*)(?:\))/i",$urlimg,$img);
                        if(!empty($img[1][0])){
                          $img = $this->getImage('https:'.$img[1][0]);//储存图片                          
                          $arr[$key]['img'] = $img['file_name'];
                          unset($img['file_name']);
                        }else{
                        
                        $arr[$key]['img'] ='';
                      }
                        
                      }else{
                        
                        $arr[$key]['img'] ='';
                      }
                      preg_match_all('|(.*)|isU',$value, $colorname);
                      $colorname1  = iconv('GBK','UTF-8', $colorname[1][0]);
                      $arr[$key]['colorname'] = $colorname1;
                    }
              }
          }else{
            $arr = '';
          }
          
          return $arr;
      }
    function getcurl($url){
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HEADER, 1);
            curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36');
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
            $content = curl_exec($ch);
            curl_close($ch);
            
            return $content;
        }
    function getalbb($url,$product_class){//1688抓取
      if(!empty($product_class)){
        $dte['product_class']=$product_class;
       }else{
           $dte['product_class']='-1-';
       }
      $db = DBAction::getInstance();
      $text=file_get_contents($url);//将url地址上页面内容保存进$text
      preg_match('/<(h1)[^c]*class=\"d-title\"[^>]*>.*<\/\\1>/is', $text, $title);
       $product_title = preg_replace('/"/', '',$title[0]);
       preg_match('|(.*)|isU',$product_title,$product_title1);
       $dte['product_title']=$product_title1[1];//产品标题
        $sql = "select * from lkt_product_list where product_title = '$product_title'";//查询是否有相同名称的商品
        $r001 = $db->select($sql);
        if(!empty($r001)){
           return  ;
           
        }
        preg_match('/]*class="swipe-pane"[^r]*rc=\"([^"]*)\"[^>]*>/', $text, $pic);//产品主图片
       if(!empty($pic[1])){
          $img = $this->getImage($pic[1]);//储存图片
          $dte['imgurl'] = $img['file_name'];
       }
        preg_match('|
 save_goods($dte);
             
  }
    function guige($text,$dte){//查询1688商品规格
        preg_match_all('|{};window.wingxViewData(.*)}|isU', $text, $dd);//查询规格,图片
        $ddd = end($dd[1]);
        preg_match_all('|"skuProps":(.*)],|isU', $ddd, $ree);//
        preg_match_all('|"value":(.*)]}|isU', $ree[1][0], $ree1);//
        preg_match_all('|{(.*)}|isU', $ree1[1][0], $tupian);//颜色+图片
        if(!empty($ree1[1][1])){
            preg_match_all('|{(.*)}|isU', $ree1[1][1], $chicun);//尺寸
            if(!empty($tupian[0])){
              foreach ($tupian[0] as $key => $value) {
                 $tupian1[] = json_decode($value);
              }
            }
            if(!empty($chicun[0])){
              foreach ($chicun[0] as $key => $value01) {
                 $chicun1[] = json_decode($value01);
              }
            }
            foreach ($tupian1 as $key02 => $value02) {
              // print_r($value02);die;
              if(!empty($value02->imageUrl)){
                $u= $this->getImage($value02->imageUrl);//储存图片
                $tupian1[$key02]->img = $u['file_name'];
              }else{
                $tupian1[$key02]->img = '';
              }
              foreach ($chicun1 as $key03 => $value03) {
                $arr1['colorname'] = $title1 = $value02->name;
                $arr1['color'] = $title1 = $value02->name;
                $arr1['img'] = $value02->img;
                $arr1['price'] = $dte['price'];
                $arr1['chicun'] = $value03->name; 
                $arr[]= $arr1;
                }
                 
              }
        }else{
              if(!empty($tupian[0])){
                  foreach ($tupian[0] as $key => $value) {
                     $tupian1[] = json_decode($value);
                  }
                }
              foreach ($tupian1 as $key02 => $value02) {
                  if(!empty($value02->imageUrl)){
                    $u= $this->getImage($value02->imageUrl);//储存图片
                    $tupian1[$key02]->img = $u['file_name'];
                  }else{
                    $tupian1[$key02]->img = '';
                  }
                    $arr1['colorname'] = $title1 = iconv('GBK','UTF-8', $value02->name);
                    $arr1['img'] = $value02->img;
                    $arr1['price'] = $dte['price'];
                    $arr1['chicun'] = '默认'; 
                    $arr1['color'] = '默认';
                    $arr[]= $arr1;
                    }
        }
        
        return $arr;
    }
     
          /*
    }
*功能:php完美实现下载远程图片保存到本地 
*参数:文件url,保存文件目录,保存文件名称,使用的下载方式 
*当保存文件名称为空时则使用远程文件原来的名称 
*/ 
  function httpsRequest($url, $data=null) {
    // 1.初始化会话
    $ch = curl_init();
    // 2.设置参数: url + header + 选项
    // 设置请求的url
    curl_setopt($ch, CURLOPT_URL, $url);
    // 保证返回成功的结果是服务器的结果
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    if(!empty($data)) {
      // 发送post请求
      curl_setopt($ch, CURLOPT_POST, 1);
      // 设置发送post请求参数数据
      curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }
    // 3.执行会话; $result是微信服务器返回的JSON字符串
    $result = curl_exec($ch);
    // 4.关闭会话
    curl_close($ch);
    return $result;
  }
//传入图片url 保存到本地
function getImage($url,$save_dir='./images/',$filename='',$type=0){ 
      $type = substr($url,strripos($url,".")+1);
      if(!$type){
        $type = '.jpg';
      }
      if($filename == ''){
        $filename = mt_rand(1,1111222).time().'.'.$type;
      }
      $newFilePath = $save_dir.$filename;
      $da = $this->httpsRequest($url);
      //发送post带参数请求 
      $newFile = fopen($newFilePath,"w"); //打开文件准备写入
      fwrite($newFile,$da); //写入二进制流到文件
      fclose($newFile); //关闭文件
    return array('file_name'=>$filename,'save_path'=>$newFilePath,'error'=>0); 
} 
       /*
      *功能:保存商品相关信息
      *参数:product_title:产品主标题  imgurl:产品主图   price:价格   title:规格名称   thumb:规格对应的图片路径
      */
    function save_goods($dte){
        $db = DBAction::getInstance();
  
        $product_class = $dte['product_class'];//产品类别 
        $product_title =$dte['product_title'];
        $imgurl =$dte['imgurl'];
        $content =$dte['content'];
        $sql = "insert into lkt_product_list(product_class,product_title,imgurl,content,num,add_date,brand_id,s_type,status,sort) values('$product_class','$product_title','$imgurl','$content','0',CURRENT_TIMESTAMP,'0','1','0','100')";
        $id = $db->insert($sql,'last_insert_id');
        if($id>0){
          foreach ($dte['arr'] as $key => $value) {//遍历插入商品规格            
            $name = $value['colorname'];
            $color = $value['color'];
            $img = $value['img'];
            $price = $value['price'];
            $size = $value['chicun'];
            $sql01 = "insert into lkt_configure( name,color,size,price,yprice,img,pid,num,bargain_price,status) VALUES ('$name','$color','$size','$price','0','$img','$id','0','0','0')";
            $re = $db ->insert($sql01);
          }
          if($re>0){
            header("Content-type:text/html;charset=utf-8");
            echo "";
            return '成功了'.$id;
          }else{
            header("Content-type:text/html;charset=utf-8");
            echo "";
            return '失败了1'.$id;
          }
        }else{
          header("Content-type:text/html;charset=utf-8");
            echo "";
            return '失败了2'.$id;
        }
      }
}
?>