第五次修改自动收录提交代码,换个思路读本地txt文件

2021-02-08
259次阅读
没有评论

还是之前的那个问题,前天修改了获取xml文件的方式,采用的是curl获取文件。

当时测试已经通过了,今天打开宝塔后台看了一下定时任务,依旧发现了一点问题,那就是两天都没有产出新的网址url链接,但是我的xml文件里面是已经更新的。

所以,一开始我猜测是cdn的缓存问题,但是打开cdn console 中心发现不是这个问题,缓存并没有缓存xml格式和php文件,那么这个bug肯定不是缓存所导致的。

之后我又在curl提交方式里面新增 curl_setopt 内容,每一次提交都强制更换url,刚开始确实有效,但是我发布文章测试url的时候,依旧不能实时获取地址,所以 这个方式也就淘汰了。

最后,实在不想浪费时间了,直接放弃了curl 或者 内置的方式 file_get_contents ,我直接读取txt文件进行格式化之后和已经提交的url地址做对比,从而进行新文章的地址提交。

// 读取文件
$file = 'sitemap.txt';
$fp = fopen($file,'r');
$str = fread($fp,filesize($file));
fclose($fp);

preg_match_all('/<loc>(.*?)</loc>/', $str, $out, PREG_PATTERN_ORDER);
$data = $out[1];

上面的代码执行的前提,是需要使用插件或者代码生产sitemap.xml文件的同时生成/更新一个同级的 sitemap.txt 文件,这个方式很简单,在插件中找到 push xml 文件的一段代码,复制到下面改一下后缀名为 txt 就行了。

目前经过测试,txt文件的响应速度和网络任务能力有明显的提高。

唯一有点问题的就是有的时候我在宝塔后台进行定时访问的任务有的时候会报错 curl: (52) Empty reply from server ,百度了一下进行测试,发现是关闭防火墙就好了。之后我刷新了cdn缓存之后再开启防火墙进行测试,发现已经不报错了,能正常返回执行的结果。但是之后会不会出问题,我也说不准。因为,这已经是我第五次修改这个自动提交到站长平台的代码了。

第五次修改自动收录提交代码,换个思路读本地txt文件

 

正文结束
居烽
版权声明:本站原创文章,由 居烽 于2021-02-08发表,共计872字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码