10 * 1024 * 1024){ msg(-1,'文件大小超限'); } //文件临时路径 $temp_path = DIR . "/data/temp"; //检测目录,不存在则创建! if(!Check_Path($temp_path)){ msg(-1,'创建临时目录失败,请检查权限'); } //移动文件到临时目录 $tmp_name = UID . "_upload_bookmark_" . uniqid() . ".{$suffix}"; //临时文件名 if(!move_uploaded_file($_FILES["file"]["tmp_name"],"{$temp_path}/{$tmp_name}")) { msg(-1,'上传失败,请检查目录权限'); }else{ $_SESSION['upload_bookmark'][UID][$sid] = "{$temp_path}/{$tmp_name}"; msg(1,'上传成功'."{$temp_path}/{$tmp_name}"); } }elseif($_GET['type'] == 'html'){ $temp_path = $_SESSION['upload_bookmark'][UID][$sid]; if(empty($temp_path) || !is_file($temp_path)){ msg(-1,'文件不存在,请重新上传'); } try{ $content = file_get_contents($temp_path); }catch(Exception $e) { msg(-1,'读入文件失败'); } $property = empty($_POST['property']) ? 0 : 1; //私有属性 $all = $_POST['all'] == '1' ? true:false; //保留属性(db3) $AutoClass = $_POST['AutoClass']; //自动分类(HTML) if($AutoClass != 1 && empty($_POST['fid'])){ msg(-1,'请先选择默认分类在开始导入!'); } //如果默认分类为空,则读取默认分类(不存在则创建) if(empty($_POST['fid'])){ $fid = get_db('user_categorys','cid',['uid'=>UID,'name'=>'默认分类']); if(empty($fid)){ insert_db('user_categorys',[ 'uid'=>UID, 'cid'=>get_maxid('category_id'), 'fid'=>0, 'pid'=>0, 'status'=>1, 'property'=>$property, 'name'=>'默认分类', 'add_time'=>time(), 'up_time'=>time(), 'weight'=>0, 'description'=>'', 'font_icon'=>'fa fa-folder', 'icon'=>'' ]); $fid = get_db('user_categorys','cid',['uid'=>UID,'name'=>'默认分类']); if(empty($fid)){ msg(-1,'创建默认分类失败'); } } }else{ $fid = intval($_POST['fid']); } //默认分类 $default_category = get_db('user_categorys','name',['uid'=>UID,'cid'=>$fid]); if(empty($default_category)){ msg(-1,'获取分类名失败!'.$fid); } $data = []; //链接组 $categorys = []; //分类信息组(遍历时) $categoryt = []; //分类信息表 $fcategorys = []; //上级分类 $Hierarchy = 0; //层级 $currenttime = time(); //当前时间 $HTMLs = explode("\n",$content); //按行分割 //遍历html foreach( $HTMLs as $HTMLh ){ if( $_POST['AutoClass'] == 1 && preg_match("/
/i',$HTMLh) ){ //匹配到文件夹结束标记时删除一个 $Hierarchy --; array_pop($categorys); } } //遍历结束,分类名去重! $categoryt = array_unique($categoryt); //var_dump($categoryt);var_dump($fcategorys);var_dump($data);exit; //创建分类 $fids = []; foreach( $categoryt as $name ){ //读取分类ID $id = get_db('user_categorys','cid',['uid'=>UID,'name'=>$name]); //如果为空则创建 if(empty($id)){ insert_db('user_categorys',[ 'uid'=>UID, 'cid'=>get_maxid('category_id'), 'fid'=>0, 'pid'=>0, 'status'=>1, 'property'=>$property, 'name'=>$name, 'add_time'=>$currenttime, 'up_time'=>$currenttime, 'weight'=>0, 'description'=>'', 'font_icon'=>'fa fa-folder', 'icon'=>'' ] ); $id = get_db('user_categorys','cid',['uid'=>UID,'name'=>$name]); if(empty($id)){ msg(-1,'意外结束:创建或读取分类信息失败!'); } } $fids[$name] = $id;//名称为key,值为id } $fids[$default_category] = $fid; //加入默认分类 //var_dump($fcategorys);exit; //二级分类处理 if($_POST['AutoClass'] == 1 && $_POST['2Class'] == 1){ foreach( $fcategorys as $name3 => $name2 ){ //读取父分类信息,确定它是父分类,而不是子分类 if(get_db('user_categorys','fid',['uid'=>UID,'name'=>$name2]) == 0){ update_db('user_categorys',['fid'=>$fids[$name2]],['uid'=>UID,'cid' => $fids[$name3]]); //更新二级分类的父id } } } // 遍历导入链接 $fail = 0; $success = 0; $iconcount = 0;$time = $currenttime; //$data = array_reverse($data); //数组倒序(这样导入后链接的顺序和浏览器一样) //表头 $res='
| 标题 | URL | 失败原因 |
|---|---|---|
| '.mb_substr(htmlspecialchars($link['title'],ENT_QUOTES), 0, 30).' | '.mb_substr(htmlspecialchars($link['url'],ENT_QUOTES), 0, 30).' | URL存在非法字符 |
| '.mb_substr(htmlspecialchars($link['title'],ENT_QUOTES), 0, 30).' | '.mb_substr(htmlspecialchars($link['url'],ENT_QUOTES), 0, 30).' | 标题存在非法字符 |
| '.mb_substr(htmlspecialchars($link['title'],ENT_QUOTES), 0, 30).' | '.mb_substr(htmlspecialchars($link['url'],ENT_QUOTES), 0, 30).' | 链接无效,只支持识别http/https协议的链接! |
| '.mb_substr($link['title'], 0, 30).' | '.mb_substr($link['url'], 0, 40).' | URL重复'.' |
| 标题 | URL | 失败原因 |
|---|---|---|
| '.mb_substr($link['title'], 0, 30).' | '.mb_substr($link['url'], 0, 40).' | 父分类不存在'.' |
| '.mb_substr($link['title'], 0, 30).' | '.mb_substr($link['url'], 0, 40).' | URL重复'.' |
| 标题 | URL | 失败原因 |
|---|---|---|
| '.mb_substr($link['name'], 0, 30).' | '.mb_substr($link['url'], 0, 40).' | URL重复'.' |
| '.mb_substr($link['name'], 0, 30).' | '.mb_substr($link['url'], 0, 40).' | '.$link['name'].' >> 不是链接'.' |