SnsStat.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. /**
  3. * 统计上报接口调用情况
  4. *
  5. * @version 3.0.2
  6. * @author open.qq.com
  7. * @copyright © 2011, Tencent Corporation. All rights reserved.
  8. * @ History:
  9. * 3.0.2 | sparkeli | 2012-03-06 15:33:04 | initialize statistic fuction which can report API's access time and number to background server
  10. */
  11. class SnsStat
  12. {
  13. /**
  14. * 执行一个 统计上报
  15. *
  16. * @param string $stat_url 统计上报的URL
  17. * @param float $start_time 统计开始时间
  18. * @param array $params 统计参数数组
  19. * @return
  20. */
  21. public static function statReport($stat_url, $start_time, $params)
  22. {
  23. $end_time = self::getTime();
  24. $params['time'] = round($end_time - $start_time, 4);
  25. $params['timestamp'] = time();
  26. $params['collect_point'] = 'sdk-php-v3';
  27. $stat_str = json_encode($params);
  28. //发送上报信息
  29. $host_ip = gethostbyname($stat_url);
  30. if ($host_ip != $stat_url) {
  31. $sock = socket_create(AF_INET, SOCK_DGRAM, 0);
  32. if (false === $sock) {
  33. return;
  34. }
  35. socket_sendto($sock, $stat_str, strlen($stat_str), 0, $host_ip, 19888);
  36. socket_close($sock);
  37. }
  38. }
  39. public static function getTime()
  40. {
  41. list($usec, $sec) = explode(" ", microtime());
  42. return ((float)$usec + (float)$sec);
  43. }
  44. }
  45. // end of script