<?php /** * * User: guo * Date: 2019-08-19 */ namespace console\controllers; use backend\models\Article; use backend\models\Question; use yii\console\Controller; use yii\helpers\FileHelper; class SitemapMobileController extends Controller { //文章xml文件名 public $article_file_name = 'baidmb_article_'; //问答xml文件名 public $question_file_name = 'baidmb_question_'; //sitemap类型 public $dataType = [ 'article', 'question', ]; //索引文件名 public $index_file_name = 'baidmb.xml'; //文件目录 public $base_dir; //cdn地址 public $cdn_url_prefix; //PC端地址 public $pc_host = 'https://www.demo.net/'; //M端地址 public $m_host = 'https://m.demo.net/'; //每页查询数据量 public $page_size = 1000; //文件大小,10M public $max_file_size = 10485760; //每个文件最大链接数 public $max_url_count = 10; /** * 初始化 * Author: guo * Date: 2019-08-19 */ public function init() { date_default_timezone_set('PRC'); $this->base_dir = rtrim(\Yii::$app->params['upload_dir'], '/') . '/mobile/baidu_sitemap/'; $this->cdn_url_prefix = rtrim(\Yii::$app->params['cdn_url_prefix'], '/'); } /** * 初始化xml文件保存目录 * Author: guo * Date: 2019-08-19 */ public function initDir() { $savePath = rtrim($this->base_dir, '/'); //创建目录 if (!is_dir($savePath)) { FileHelper::createDirectory($savePath, 0777, true); } //判断目录是否可写 if (!is_writable($savePath)) { $this->stderr($savePath . "目录没有写的权限"); } } /** * 格式化内存使用单位 * Author: guo * Date: 2019-08-19 * @param $size * @return string */ private function convert($size) { $unit = array('b', 'kb', 'mb', 'gb', 'tb', 'pb'); return round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . $unit[$i]; } /** * 创建站点地图 * Author: guo * Date: 2019-08-19 * @param $dataType * @param $filename */ private function buildXml($dataType, $filename) { $mem_start = memory_get_usage(true); echo "初始使用内存:" . $this->convert($mem_start) . "\n"; $time_start = microtime(true); //初始化目录 $this->initDir(); //数据集合,如果数据量大,需要设置合理内存 $list = []; //接口分页数 $page = 1; //每个xml文件包含数据量计数器 $eachFileCount = 0; //文件号码 $fileNo = 1; do {
Yii2命令行下百度sitemap生成xml文件以及索引文件
最新推荐文章于 2020-05-09 10:00:38 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)