4 changed files with 271 additions and 93 deletions
-
216app/controller/ArticleController.php
-
115app/controller/ScriptController.php
-
10app/model/Expert.php
-
23route/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