 x-zj
					
					3 years ago
						x-zj
					
					3 years ago
					
				
				 4 changed files with 271 additions and 93 deletions
			
			
		- 
					196app/controller/ArticleController.php
- 
					115app/controller/ScriptController.php
- 
					10app/model/Expert.php
- 
					21route/app.php
| @ -0,0 +1,115 @@ | |||||
|  | <?php | ||||
|  | 
 | ||||
|  | namespace app\controller; | ||||
|  | 
 | ||||
|  | use app\BaseController; | ||||
|  | use app\model\{Article, Expert}; | ||||
|  | use think\facade\Db; | ||||
|  | 
 | ||||
|  | class ScriptController extends BaseController | ||||
|  | { | ||||
|  |      | ||||
|  |     public function getArticle(){ | ||||
|  |         //获取已就绪文章列表
 | ||||
|  |         $list = Article::where('status', 2)->field("*")->select()->toArray(); | ||||
|  |         if(empty($list)){ | ||||
|  |              | ||||
|  |         } | ||||
|  |          | ||||
|  |         //创建待处理目录
 | ||||
|  |         $fileName = date('Y-m-d_H:i:s'); | ||||
|  |         $pathSrc = getcwd() . '/uploads/' . $fileName; | ||||
|  |         mkdir($pathSrc, 0777, true); | ||||
|  |          | ||||
|  |         foreach ($list as $value) { | ||||
|  |             if(empty($value['account']))continue; | ||||
|  |              | ||||
|  |             $uuid = strtoupper(md5($value['id'])); | ||||
|  | 
 | ||||
|  |             //创建文件夹
 | ||||
|  |             $artSrc = $pathSrc . '/' . $uuid; | ||||
|  |             if (!is_dir($artSrc)) { //若目录不存在则创建之
 | ||||
|  |                 mkdir($artSrc, 0777, true); | ||||
|  |             } | ||||
|  | 
 | ||||
|  |             //url图片保存本地
 | ||||
|  |             if(empty($value['cover'])){ | ||||
|  |                 copy(getcwd() . '/static/empty.png', $artSrc . '/b_封面图.jpg'); | ||||
|  |             }else{ | ||||
|  |                 $this->down_img($artSrc, $value['cover']); | ||||
|  |             } | ||||
|  |              | ||||
|  |             //文章内容
 | ||||
|  |             $wordname = $artSrc . "/a_文章.doc"; | ||||
|  | 
 | ||||
|  |             //html标签类文章转成word
 | ||||
|  |             $html = $value['content']; | ||||
|  |             $this->start(); | ||||
|  |             echo $html; | ||||
|  |             $this->save($wordname); | ||||
|  | 
 | ||||
|  |             //设置信息
 | ||||
|  |             file_put_contents($artSrc . '/c_信息.txt', $value['id'] . "\r\n" .$value['title']); | ||||
|  |              | ||||
|  |             //设置账号
 | ||||
|  |              | ||||
|  |             file_put_contents($artSrc . '/d_账号.txt', $this->getAccounts($value['account'])); | ||||
|  | 
 | ||||
|  |             //更改状态为已下载
 | ||||
|  |             Article::where('id', $value['id'])->update(['status' => 3]); | ||||
|  |         } | ||||
|  |          | ||||
|  |          | ||||
|  |     } | ||||
|  | 
 | ||||
|  | 
 | ||||
|  |     function start() | ||||
|  |     { | ||||
|  |         ob_start(); | ||||
|  |         echo '<html xmlns:o="urn:schemas-microsoft-com:office:office" | ||||
|  | xmlns:w="urn:schemas-microsoft-com:office:word" | ||||
|  | xmlns="http://www.w3.org/TR/REC-html40">'; | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     function save($path) | ||||
|  |     { | ||||
|  | 
 | ||||
|  |         echo "</html>"; | ||||
|  |         $data = ob_get_contents(); | ||||
|  |         ob_end_clean(); | ||||
|  | 
 | ||||
|  |         $this->wirtefile($path, $data); | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     function wirtefile($fn, $data) | ||||
|  |     { | ||||
|  |         $fp = fopen($fn, "wb"); | ||||
|  |         fwrite($fp, $data); | ||||
|  |         fclose($fp); | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     function down_img($path,$img_url){ | ||||
|  |         ob_start(); | ||||
|  |         readfile($img_url); | ||||
|  |         $img=ob_get_contents(); | ||||
|  |         ob_end_clean(); | ||||
|  |         $filename = '/b_封面图.jpg'; | ||||
|  |         $fp2=@fopen($path . $filename,'a'); | ||||
|  |         fwrite($fp2,$img); | ||||
|  |         fclose($fp2); | ||||
|  |         unset($img,$url); | ||||
|  |     } | ||||
|  |      | ||||
|  |     private function getAccounts($accountIdStr){ | ||||
|  |         $content = []; | ||||
|  |         $accountIds = explode(',', $accountIdStr); | ||||
|  |         $accounts = Expert::where('id', 'in', $accountIds)->field("*")->select()->toArray(); | ||||
|  |          | ||||
|  |         foreach($accounts as $item){ | ||||
|  |             $content[] = $item['platform_code'] . '|' . $item['script_x'] . '|' . $item['script_y']; | ||||
|  |         } | ||||
|  |          | ||||
|  |         return implode("\r\n", $content); | ||||
|  |     } | ||||
|  | 
 | ||||
|  | } | ||||
| @ -0,0 +1,10 @@ | |||||
|  | <?php | ||||
|  | namespace app\model; | ||||
|  | 
 | ||||
|  | use app\model\BaseModel; | ||||
|  | 
 | ||||
|  | class Expert extends BaseModel | ||||
|  | { | ||||
|  |     protected $table ='expert'; | ||||
|  | 
 | ||||
|  | } | ||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue