GoogleSpeedApi.php 3.1 KB
<?php


namespace App\Helper;

use App\Utils\HttpUtils;
use GuzzleHttp\Exception\GuzzleException;


/**
 * Class PageSpeed
 * @package App\Helper
 * @author zbj
 * @date 2023/5/10
 */
class GoogleSpeedApi
{

    protected $areas = [
        [
            "area" => "洛杉矶",
            "numericValue" => 0,
        ],
        [
            "area" => "圣地亚哥",
            "numericValue" => 0,
        ],
        [
            "area" => "伦敦",
            "numericValue" => 0,
        ],
        [
            "area" => "西雅图",
            "numericValue" => 0,
        ],
        [
            "area" => "吉隆坡",
            "numericValue" => 0,
        ],
        [
            "area" => "雅加达",
            "numericValue" => 0,
        ],
        [
            "area" => "孟买",
            "numericValue" => 0,
        ],
        [
            "area" => "迪拜",
            "numericValue" => 0,
        ],
        [
            "area" => "法兰克福",
            "numericValue" => 0,
        ],
        [
            "area" => "新加坡",
            "numericValue" => 0,
        ],
        [
            "area" => "悉尼",
            "numericValue" => 0,
        ],
        [
            "area" => "东京",
            "numericValue" => 0,
        ],
        [
            "area" => "硅谷",
            "numericValue" => 0,
        ],
        [
            "area" => "弗吉尼亚",
            "numericValue" => 0,
        ],
        [
            "area" => "香港",
            "numericValue" => 0,
        ],
        [
            "area" => "圣保罗",
            "numericValue" => 0,
        ],
        [
            "area" => "雅典",
            "numericValue" => 0,
        ],
        [
            "area" => "巴黎",
            "numericValue" => 0,
        ],
        [
            "area" => "罗马",
            "numericValue" => 0,
        ],
        [
            "area" => "马德里",
            "numericValue" => 0,
        ],
    ];

    /**
     * @param $url
     * @return array|false
     * @author zbj
     * @date 2023/5/10
     */
    function run($url)
    {
        try {
            if($url){
                $params = [
                    'url' => base64_encode($url)
                ];
                $res = HttpUtils::get('http://pagespeed.quanqiusou.cn/api.php', $params);
                if ($res) {
                    $res = Arr::s2a($res);
                    $area_data = Arr::s2a($res['area_data']);
                }
                $numericValue = $area_data[0]['numericValue'] ?? rand(500, 1000);
                foreach ($this->areas as &$area) {
                    $start = -$numericValue * 0.5;
                    $end = $numericValue * 0.5;
                    $numer = rand($start, $end);
                    $area["numericValue"] = ceil($numericValue - $numer);
                }
            }
        } catch (\Exception | GuzzleException $e) {
            errorLog('测速失败', $params, $e);
        }
        return [
            "url" => $url,
            "area_data" => $this->areas,
            "created_at" => date("Y-m-d H:i:s")
        ];
    }
}