PushBehavior.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * Author: NODELOG
  4. * Date: 2015/12/28
  5. * Time: 17:34.
  6. */
  7. namespace common\behaviors;
  8. use common\models\Article;
  9. use yii\base\Behavior;
  10. class PushBehavior extends Behavior
  11. {
  12. public function events()
  13. {
  14. if (YII_ENV_PROD) {
  15. return [
  16. Article::EVENT_AFTER_INSERT => [$this, 'pushBaidu'],
  17. ];
  18. }
  19. return [];
  20. }
  21. /**
  22. * 主动推送给百度链接.
  23. *
  24. * @param $event
  25. */
  26. public function pushBaidu($event)
  27. {
  28. $urls = array(
  29. 'http://www.51siyuan.cn/' . $event->sender->getPrimaryKey(),
  30. );
  31. $api = 'http://data.zz.baidu.com/urls?site=www.51siyuan.cn&token=qm04kFWOTu8K7pEA';
  32. $ch = curl_init();
  33. $options = [
  34. CURLOPT_URL => $api,
  35. CURLOPT_POST => true,
  36. CURLOPT_RETURNTRANSFER => true,
  37. CURLOPT_POSTFIELDS => implode("\n", $urls),
  38. CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
  39. ];
  40. curl_setopt_array($ch, $options);
  41. $result = curl_exec($ch);
  42. echo $result;
  43. }
  44. }