Baidu.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace app\common\extend\urlsend;
  3. use think\Cache;
  4. class Baidu {
  5. public $name = '百度推送普通';
  6. public $ver = '1.0';
  7. public function submit($data)
  8. {
  9. $token = $GLOBALS['config']['urlsend']['baidu']['token'];
  10. $site = $GLOBALS['http_type'] . $GLOBALS['config']['site']['site_url'];
  11. $api = 'http://data.zz.baidu.com/urls?site=' . $site . '&token=' . $token;
  12. $head = ['Content-Type: text/plain'];
  13. $post = implode("\n", $data['urls']);
  14. $r = mac_curl_post($api, $post, $head);
  15. $json = json_decode($r,true);
  16. $url_count = isset($data['urls']) ? count($data['urls']) : 0;
  17. $api_safe = preg_replace('/token=[^&]+/', 'token=***', $api);
  18. if(!$json){
  19. return [
  20. 'code'=>101,
  21. 'msg'=>"请求失败,请重试\n" .
  22. "调试信息:\n" .
  23. "- 推送URL数量:{$url_count}\n" .
  24. "- API地址:{$api_safe}\n" .
  25. "- 原始响应:{$r}"
  26. ];
  27. }
  28. elseif(isset($json['error']) && $json['error']){
  29. $error_msg = isset($json['message']) ? $json['message'] : '未知错误';
  30. $tips = '';
  31. if($error_msg == 'site error') {
  32. $tips = "\n提示:站点未在百度站长平台验证或站点地址配置错误";
  33. }
  34. elseif($error_msg == 'token is not valid') {
  35. $tips = "\n提示:Token无效,请在百度站长平台重新获取正确的Token";
  36. }
  37. return [
  38. 'code'=>102,
  39. 'msg'=>"发生错误:{$error_msg}\n" .
  40. "调试信息:\n" .
  41. "- 推送URL数量:{$url_count}\n" .
  42. "- API地址:{$api_safe}\n" .
  43. "- 百度返回码:{$json['error']}{$tips}"
  44. ];
  45. }
  46. return ['code'=>1,'msg'=>'推送成功'.$json['success'].'条;当天剩余可推'.$json['remain'].'条。' ];
  47. }
  48. }