亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問下TP5類似添加文章代碼有竅門嗎?我寫了一百行代碼。。。

請問下TP5類似添加文章代碼有竅門嗎?我寫了一百行代碼。。。

否認三連 2017-10-03 12:36:20
//添加文章 public?function?addArticle(){ ????$data?=?request()->post(); ????//一、處理縮略圖 ????//創建目錄 ????$path?=?'static/image/'.date('ymd',time()); ????$temp?=?'temp'; ????$thumb?=?'upload'; ????if(!file_exists($path)){ ????????mkdir($path,777,true); ????} ????if(!file_exists($temp)){ ????????mkdir($temp,777,true); ????} ????if(!file_exists($thumb)){ ????????mkdir($thumb,777,true); ????} ????$file?=?request()->file('thumb'); ????if($file)?{ ????????$info?=?$file->validate([?'ext'?=>?'jpg,png,gif'])->rule('md5')->move($temp);//驗證 ????????if($info){ ??????????$pathname?=?$info->getPathname(); ??????????$filename?=?$info->getFilename(); ??????????$info?=?\think\Image::open($pathname); ??????????$img?=?$info->thumb(200,?200)->save($thumb.'/'.?$filename); ??????????if($img){ ??????????????$data['imgPath']?=?$thumb.'/'.?$filename; ??????????????unlink($pathname);//刪除臨時文件 ??????????} ????????}else{ ????????????$info->getError(); ????????} ????} ????//二、處理?UEditor?內容中的圖片信息 ????$pattern?=?'/(\/)?(\w+\/)+\w+\.(jpg|png|gif)/'; ????$res?=?preg_match_all($pattern,$data['content'],$row); ????if($res){ ????????//有圖片信息就處理 ????????//1.檢測臨時圖片文件是否存在 ????????foreach?($row[0]?as?$k=>$v){ ????????????//由于只能以入口文件為參考點,所以preg_replacepu?bublic之前的目錄,獲取臨時文件路徑 ????????????$pattern2?=?'/\/?(\w+\/)+public\//'; ????????????$v?=?preg_replace($pattern2,'',$v); ????????????if(file_exists($v)){ ????????????????//2.轉存圖片,把臨時路徑存入數組,方面后面刪除使用 ????????????????$this->linkinfo['old'][]?=?$v; ????????????????$filename?=?pathinfo($v,PATHINFO_BASENAME); ????????????????//3.替換內容圖片路徑,把新路徑存入數組,方面后面刪除 ????????????????$res?=?copy($v,$path.'/'.$filename); ????????????????$this->linkinfo['new'][]?=?$path.'/'.$filename; ????????????????if($res){ ????????????????????$data['content']?=?str_replace($v,$path.'/'.$filename,$data['content']); ????????????????} ????????????}else{ ????????????????$this->insertOne($data); ????????????} ????????}//endforeach ????????//4.數據插入數據庫 ????????$res?=?$this->insertOne($data); ????????if($res){ ????????????//刪除臨時圖片文件 ????????????foreach?($this->linkinfo['old']?as?$k=>$v){ ????????????????unlink($v); ????????????} ????????????return?true; ????????}else{ ????????????//刪除臨時圖片,另存圖片,縮略圖 ????????????foreach?($this->linkinfo['old']?as?$k=>$v){ ???????????????unlink($v); ????????????} ????????????foreach?($this->linkinfo['new']?as?$k=>$v){ ????????????????unlink($v); ????????????} ????????????????unlink($thumb.'/'.?$filename); ????????????return?false; ????????} ????}else{ ????????//沒有圖片信息,直接處理 ????????$res?=?$this->insertOne($data); ????????return?$res; ????} } public?function?insertOne($data){ ????$res?=?Article::insert($data); ????return?$res; }雖然能用,但感覺沒這么繞吧?順便問下,怎么讓Image::open()不直接跳錯誤頁面,讓我IF用啊
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 1744 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號