php教程

PHP百度自动推送API代码

我的站长站 2022-10-26 人阅读

本文分享PHP 百度站长平台自动推送 API 完整示例代码,支持普通推送、实时推送、批量 URL 推送,适配主动提交网站链接至百度收录。代码基于 Curl 实现,内置请求头配置、超时处理、返回结果解析、错误捕获,可结合站点发布文章自动触发推送,提升页面收录效率。同时讲解接口调用规则、配额限制、调用频率及常见报错排查,适合个人站点、资讯站、内容站等 SEO 优化场景,代码可直接嵌入项目使用。

<?php
//baidu push api
//https://ziyuan.baidu.com/linksubmit/index 这里提供的 api 接口,普通收录,主动提交,php代码
$api = 'http://data.zz.baidu.com/urls?site=网址&token=秘钥';
 
 
//get site urls
function GetUrls($api):string{
    $site = "网站地图";
    //获取 xml 信息
    $XmlUrls = curl($site,null);
    //将 xml 转为数组
    $resource = xml_parser_create();
    xml_parse_into_struct($resource,$XmlUrls,$value,$index);
    xml_parser_free($resource);
    //$urlArr 即为接受所有 url 的数组
    $urlArr = [];
    foreach ($value as $content){
        if ($content["tag"] === "LOC"){
            $urlArr[] = $content["value"];
        }
 
    }
    //开始上传
    $response = curl($api,$urlArr,1);
    //将响应 json 转为 对象
    $result = json_decode($response);
    if ($result->success != 0){
        return "主动提交成功!";
    }else{
        return  "主动提交失败!";
    }
}
 
function curl($url,$params,$is_post = 0){
    $ch = curl_init();
 
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,60);
    curl_setopt($ch,CURLOPT_TIMEOUT,60);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);//禁止验证对等证书,默认为true
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);//检查服务器SSL证书中是否存在一个公用名,值0|2,
    if($is_post){
        curl_setopt($ch,CURLOPT_POST,true);
        curl_setopt($ch,CURLOPT_POSTFIELDS,$params);
        curl_setopt($ch,CURLOPT_URL,$url);
    }else{
        if($params){
            curl_setopt($ch,CURLOPT_URL,$url.'?'.$params);
        }else{
            curl_setopt($ch,CURLOPT_URL,$url);
        }
    }
    $response = curl_exec($ch);
    return $response;
}
echo GetUrls($api);


php教程标签