app->request->param('cid'); $params = $this->app->request->param(); $list = ArticleModel::queryPage($params); View::assign('category_tree', $category_tree); View::assign('list', $list); View::assign('cid', $cid); return View::fetch(); } public function save($content_type = 0, $id = 0) { if ($this->app->request->isPost()) { $params = $this->app->request->param(); if (!$params['cid']) { $this->error('请选择栏目'); } if ($params['title'] == '') { $this->error("标题不能为空"); } $params['content'] = isset($params['content']) ? $params['content'] : ''; if ($content_type == 0) { $params['content'] = $this->saveRomteImage($params['content']); } $params['keywords'] = str_replace(' ', '', $params['keywords']); try { if ($params['id'] != 0) { ArticleModel::update($params); } else { $params['userid'] = $this->getSysUser()->userid; $params['username'] = $this->getSysUser()->nickname; unset($params['id']); ArticleModel::create($params); } } catch (\Exception $e) { $msg = $e->getMessage(); $this->error("错误提示:" . $msg); } $this->success('操作成功', (string) url('index?cid=' . $params['cid'])); } else { if ($id) { $data = ArticleModel::find($id); } else { $data = new ArticleModel(); $data->content_type = $content_type; } $categories = CategoryModel::field('id, parent_id, name')->select(); View::assign('category_tree', list_tree($categories)); View::assign('data', $data); $template = $content_type ? 'savemd' : 'save'; return View::fetch($template); } } protected function saveRomteImage($content) { $fileService = new FileService(); $content = stripslashes ($content); $img_array = []; // 匹配所有远程图片 $pattern = '/src="(http[s]:\/\/.*)"/isU'; preg_match_all ($pattern,$content,$img_array); // 删除重复 url $img_arrays = array_unique ($img_array[1]); foreach ($img_arrays as $value) { $file = $fileService->urlImg($value); $savename = \think\facade\Filesystem::disk('public')->putFile('/', $file); $filename = Config::get('filesystem.disks.public.url') . '/' . str_replace('\\', '/', $savename); // dump($filename); $content = str_replace($value, $filename, $content); } return $content; } }