common.php 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. /**
  3. * 自定义公共函数
  4. * @Description
  5. * @Author 刘学玺
  6. * @Date 2023/11/30 13:50
  7. */
  8. /**
  9. * 根据起点坐标和终点坐标测距离
  10. * @param array $from [起点坐标(经纬度),例如:array(118.012951,36.810024)]
  11. * @param array $to [终点坐标(经纬度)]
  12. * @param bool $km 是否以公里为单位 false:米 true:公里(千米)
  13. * @param int $decimal 精度 保留小数位数
  14. * @return float 距离数值
  15. */
  16. function get_distance(array $from, array $to, bool $km = true, int $decimal = 2): float
  17. {
  18. sort($from);
  19. sort($to);
  20. $EARTH_RADIUS = 6370.996; // 地球半径系数
  21. $distance = $EARTH_RADIUS * 2 * asin(sqrt(pow(sin(($from[0] * pi() / 180 - $to[0] * pi() / 180) / 2), 2) + cos($from[0] * pi() / 180) * cos($to[0] * pi() / 180) * pow(sin(($from[1] * pi() / 180 - $to[1] * pi() / 180) / 2), 2))) * 1000;
  22. if ($km) {
  23. $distance = $distance / 1000;
  24. }
  25. return round($distance, $decimal);
  26. }
  27. function get_file_extension($filename){
  28. return substr($filename, strrpos($filename, '.') + 1);
  29. }