-
额,,,其实这可能是个伪命题,因为sitemapx这个软件虽然有计划任务,也会执行。但是执行完毕之后不会自动生成sitemap文件。有可能是我不会使用,有精通的大佬请评论告知,在此现行拜谢!
-
首先安装sitemapx软件,我一路next安装路径全部默认。安装完毕之后,打开软件选择新建,完成新建工程之后下一步下一步(在此省略生成sitemap.txt/xml步骤)。此时sitemap保存路径应该是在C:\ProgramFiles (x86)\SitemapX\Product
-
新建php文件,并保存。
$a=glob('C:\Program Files (x86)\SitemapX\Product\*');//获取product目录下的所有目录
$b=glob($a[0].'\*');//获取product目录下下标为0的目录下的目录
$c=glob($b[0].'\*');
$length=count($c);//获得$c的长度
$d=glob($c[$length-2].'\*');
//var_dump($d[3]);die;//打印出sitemap.txt目录地址
$file = $d[3];
if(file_exists($file)) {
$content = file_get_contents($file); //文件内容读入字符串
//var_dump($content);die;
if (empty($content)) {
echo "文件内容为空";
} else {
$content = mb_convert_encoding($content, 'UTF-8', 'ASCII,UTF-8,GB2312,GBK,BIG5'); //转换字符编码为utf-8
$array = explode("\r\n", $content); //转换成数组
$array = array_filter($array); // 去空
$array = array_unique($array); // 去重
$array=array_values($array);//必须加上这个,否则提交的时候会出现提交键值对的现象,虽然提示提交成功。
$urls = $array;
$api = 'xxx';//此处填写百度给你的接口调用地址
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
}
}else{
echo "文件不存在";
}
-
宝塔中配置好apache或者Nginx,确保本地能访问到刚刚创建的php文件。然后点击宝塔中的计划任务选择访问URL,并将访问地址填入输入框。设置好时间,这样每天只需要手动生成一下sitemap就行了(这里说的手动是因为我不知道sitemapx计划任务如何自动生成sitemap文件。。。。)
如果对您有用,还请不吝点赞