当前位置:首页 > 网站运营 > 正文内容

百度主动推送怎么用_百度主动推送PHP演示代码分享

葱子2年前 (2022-03-28)网站运营3622

近期在搜外问答上看到有很多人咨询百度主动推送API接口怎么调用的问题,看了很多回答内容,并没有讲到本质上。

虽然百度站长平台有提供类似的接口调用演示,但是对于基础比较薄弱的站长来讲,还是不会使用。

今天葱子给大家提供一份百度主动推送PHP的示例代码,给大家讲解一下如今使用百度主动推送API。

原理:

1、通过读取数据库中存在的帖子或者文章的id,然后拼接成url
2、将拼接后的url通过调用百度主动推送API接口推送给百度

难点:

1、如何读取数据库并拼接url
2、超过2000条如何处理
3、怎么调用百度主动推送API接口

怎么使用:

1、新建一个test.php文件,然后复制演示代码的内容到test.php文件中
2、修改演示代码中的数据库信息、网址信息、url格式
3、将test.php文件上传到网站根目录下
4、浏览器中访问你的网址+test.php即可开始推送。推送成功后会返回相关的结果
5、推送成功返回结果示例:
{ "remain":99998, "success":2, }

高阶使用模式:

上面只是简单的读取推送,其实可以做的更个性化一点。
1、自动推送:可以结合discuz或者宝塔面板的自带的定时任务来实现自动推送
2、限定日期推送:比如可以推送近一个月的数据等

高阶使用的代码这里就不做演示了。

以上便是调用百度主动推送API接口的思路。

演示代码:

以推送discuz网站的帖子数据为例,演示如何读取数据、拼接url、调用百度主动推送API接口进行推送。你可以根据这套代码去修改适配各种基于php的网站,比如discuz、zblog、wordpress等。

<?php
set_time_limit(0); //脚本超时时间设置,根据自己的数据量来设置,0为无限
$siteurl="***/";//你的网址,不要删除后面的/
$dbhost = 'localhost';  // mysql服务器主机地址
$dbuser="***";//数据库用户名
$dbname="***";//数据库名称
$dbpass="***";//数据库密码
$table="pre_forum_thread";//你的数据表,这里以discuz的帖子数据表为例
$api = '';//百度主动推送的api接口地址,需要去百度站长后台获取
$conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);//连接数据库
mysqli_query($conn , "set names utf8");// 设置编码,防止中文乱码
//从数据库拿出数据
$sql = "SELECT tid FROM $table order by tid limit 10" ;//discuz的帖子数据,限制10条,如需推送全部内容,可以删除掉limit 10
$result=mysqli_query($conn,$sql);
$urls=array();//用于缓存网址的数组
while($rs=mysqli_fetch_object($result))
{
 $tid=$rs->tid;
 $url=$siteurl."thread-".$tid."-1-1.html";//拼接url:https://www.baidu.com/thread-1133-1-1.html
 array_push($urls,$url);//将每个url推送到urls数组中
}
mysqli_close($conn);

//将$urls等分
$urls_group=group($urls,2000);//百度推送接口一次只支持推送2000条数据,所以超过2000条的话需要分组推送
$count=count($urls_group);
for($i=0;$i<$count;$i++){
    //调用百度推送接口
baiduSubmit($api,$urls_group[$i]);
}


//构造调用百度主动推送API的函数
function baiduSubmit($api,$urls){
$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 json_encode($result);
}

//等分数组
function group($array, $subGroupLength) {
      return array_chunk($array,$subGroupLength);
  }
?>

扫描二维码推送至手机访问。

版权声明:本文由葱子博客发布,如需转载请注明出处。

本文链接:https://www.aitiancheng.com/article-1603.html

相关文章

wordpress博客从虚拟主机搬家到独立ECS服务器的教程

wordpress博客从虚拟主机搬家到独立ECS服务器的教程

我的这个博客在2017年4月10日前是搭建在阿里云虚拟主机上面的,虚拟主机的特点就是稳定,不需要自己做过多的配置,适合访问量不大,对环境要求不高的网站。 现在我尝试做我的wordpress博客做下https,在阿里云虚...

好用的php问答系统都有哪些?tipask和whatsns对比

好用的php问答系统都有哪些?tipask和whatsns对比

就目前来讲,国内做的还不错的php问答系统有tipask和whatsns,这两套php问答系统葱子我都有试用过,总的来讲各有千秋。 tipask的代码风格比较简洁,开发者应该是对技术比较有追求,同时整体的页面模板非常简洁,看着很舒服。wh...

寂寞河社区完成https改造 顺利通过百度站长https认证

寂寞河社区完成https改造 顺利通过百度站长https认证

寂寞河社区是我的一个客户的运营项目,主要是图片交流社区。 客户的需求主要有几点: 1、服务器环境配置: discuz是基于php的应用,所以需要配置php的运行环境。 在这次配置中,我采用了IIS+PHP5....

葱子的wordpress博客开启https访问了:解决百度分享、畅言无法使用的问题

葱子的wordpress博客开启https访问了:解决百度分享、畅言无法使用的问题

我的博客一直是放在阿里云虚拟主机上面的,今天因为虚拟主机快到期的缘故,将博客转移到了自己的独立ECS服务器上面了。 借着wordpress博客搬家这个机会,一并将博客的https也给开启了。 下面我简单...

如何定制百度索引量查看规则?进来教你

如何定制百度索引量查看规则?进来教你

在网站运营过程中是否有遇到过这样的问题:想要了解一下那种类型的文章或者栏目下的文章收录了多少,想要测算一下收率,不知道怎么精确获取百度的索引量。 接下来葱子教大家一下。 1、首先登录百度站长平台,点击索引量这个按钮2、拉到页面最下方,可...

windows server2008中用IIS7.0实现http全站301跳转到https

windows server2008中用IIS7.0实现http全站301跳转到https

在前面一篇文章中,我们讲到了如何为网站开启https访问。 但是,有个问题就是,他是同时支持http和https访问的。 现在,我们需要访问网站时默认跳转到https,要怎么办呢? 为...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。