之前全部是定时或者自动化提交数据的,但由于我网站的数据暴增,之前生成sitemap.xml 和sitemap.txt 的方法全部不好用了,php内存超时溢出。
所以这次我换成手动,大量数据就用手动慢慢来,每次200条,不着急的也可以手动访问进行提交,懒人也可以直接把链接挂在宝塔自动任务也行。
废话不多说了,我的博客slhq.cn ,全是我自己弄的,别乱转载了。
代码如下:
<?php // 定义txt文件名 $txt_file = 'all_siteurl.txt'; // 定义每次读取的行数 $limit = 200; // 获取上一次读取的行数,如果不存在则从0开始读取 $offset = file_get_contents('jishu.txt') ?: 0; // 打开txt文件 $fp = fopen($txt_file, 'r'); // 定位到上一次读取的位置 if ($offset > 0) { fseek($fp, $offset); } // 读取200条数据 $data = array(); for ($i = 0; $i < $limit; $i++) { $line = fgets($fp); if ($line === false) { break; } $data[] = $line; } // 处理读取的数据 foreach ($data as $index => $line) { // do something sogouPush($line); } // 记录下一次读取的位置 $next_offset = $offset + strlen(implode('', $data)); file_put_contents('jishu.txt', $next_offset); // 关闭txt文件 fclose($fp); die('推送成功.最后一条是:'.end($data)); function sogouPush($url){ $postUrl = 'http://fankui.help.sogou.com/index.php/web/web/addShoulu'; $postData = array( "source" => "1", "site_type" => "3", "Shoulu" => array("webAdr"=>$url,"email"=>"xsds@vip.qq.com","reason"=>"网站内容更新") ); $postData = http_build_query($postData); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $postUrl); curl_setopt($curl, CURLOPT_USERAGENT,'Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15'); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // stop verifying certificate curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded')); curl_setopt($curl, CURLOPT_POSTFIELDS, $postData); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); $r = curl_exec($curl); curl_close($curl); return $r; } ?>
效果如图所示:
如何使用:
访问网址:https://boke.slhq.cn/tj/new/tui-sogou.php 即可。
将上面的代码保存为文件 tui-sogou.php 放在对应的目录下,将上一篇文章 将所有的xml文件中的链接提取到txt文件中存放 中生成的txt文件放在同级目录中,同时再新建一个计数文件(jishu.txt),里面填写上 0 就行。
开始访问这个文件,你会发现需要等待一会儿,因为这是在将 txt 文件中的url提取出来并提交的搜狗引擎,200条循环执行,需要点时间(搜狗引擎一次只能提交1条,每批次限制200条。大家可以参考:https://zhanzhang.sogou.com/index.php/sitelink/index 这个地址)
至此就算是提交完成,而且每次会在上次的后面接着提交,不会重复提交的。需要注意的是 jishu.txt 这个文件里面的数据不能修改,要是不小心改了,那就重新改回0,从头再来再提交吧。