Google PageSpeed Insights API 无法正常工作 [PHP]

2024-05-26

我是 PHP 的初学者,所以也许有人可以帮助解决这个问题? 我的网络应用程序显示 Google PageInsights API 错误。

这是代码,我尝试将版本更改为/v2/,但仍然不起作用..

public function getPageSpeed($domain, $api = "")
        {
            try
            {
                $callback_url = "https://www.googleapis.com/pagespeedonline/v1/runPagespeed?";
                $data = array(
                    'url'       => 'http://' . $domain,
                    'key'       => (empty($api) ? $_SESSION['GOOGLEAPI_SERVERKEY'] : $api),
                    'fields'    => 'score,pageStats(htmlResponseBytes,textResponseBytes,cssResponseBytes,imageResponseBytes,javascriptResponseBytes,flashResponseBytes,otherResponseBytes)'
                );

                $curl_response = $this->curl->get($callback_url . http_build_query($data, '', '&'));

                if ($curl_response->headers['Status-Code'] == "200") {

                    $content = json_decode($curl_response, true);
                    $response = array(
                        'status' => 'success',
                        'data' => array(
                            'pagespeed_score' => (int)$content['score'],
                            'pagespeed_stats' => $content['pageStats']
                        )
                    );

                } else {

                    $response = array(
                        'status' => 'error',
                        'msg' => 'Google API Error. HTTP Code: ' . $curl_response->headers['Status-Code']
                    );

                }
            }
            catch (Exception $e)
            {
                $response = array(
                    'status' => 'error',
                    'msg' => $e->getMessage()
                );
            }
            return $response;
        }

<?php   

  function checkPageSpeed($url){    
    if (function_exists('file_get_contents')) {    
    $result = @file_get_contents($url);
  }    
  if ($result == '') {    
  $ch = curl_init();    
  $timeout = 60;    
  curl_setopt($ch, CURLOPT_URL, $url);    
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);  
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);    
  $result = curl_exec($ch);    
  curl_close($ch);    
 }    

 return $result;    
}  

$myKEY = "your_key";  
$url = "http://kingsquote.com";  
$url_req = 'https://www.googleapis.com/pagespeedonline/v1/runPagespeed?url='.$url.'&screenshot=true&key='.$myKEY;  
$results = checkPageSpeed($url_req);  
echo '<pre>';  
print_r(json_decode($results,true));   
echo '</pre>'; 
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google PageSpeed Insights API 无法正常工作 [PHP] 的相关文章

  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el
  • 免费 PHP 登录库 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • PHP 通过 SSL 连接到 MS SQL

    我想要实现的目标非常简单 我想通过安全连接从 PHP 脚本连接到外部 MS SQL 数据库 然而 这已被证明是有问题的 到目前为止 经过三个小时的研究 我不知所措 客户端的平台是Ubuntu 这意味着我无法使用SQLSRV 安全连接已经在不
  • 按文件名对 $_FILES 进行排序 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 他俩 如您所知 在新的 HTML5 中 您可以非常轻松地上传多个文件 但我这里的问题是如何按列 名称 对 FILES 数组进行排序 这是
  • jQuery ajax 调用包含重音字符的 url 将错误的 Uri 从 IE 发送到服务器

    我在使用 IE 发送包含重音字符的 url 时遇到问题 这是一个简单的函数 function runjQueryTest var url test Beyonc get url function 在服务器 PHP 上我记录了请求uri的值
  • PHP MongoDb 驱动程序:如何设置执行代码的超时

    我有以下代码 它在 MongoDb 端执行一段代码 mongoCode new MongoCode Some JS code db gt execute mongoCode array socketTimeoutMS gt 1000000
  • 是否可以将路由参数传递给 Laravel 中的控制器构造函数?

    是否可以将路由参数 或路由段 注入到控制器构造函数中 您找到一些代码来澄清我的问题 class TestController protected param public function construct paramFromRoute
  • PHP WCF 集成

    是不是如果我想支持php客户端访问我的服务 我必须有一个基本的http端点 这是因为php仍然只支持soap 1 1吗 据我所知 自从我使用 PHP 以来已经两年了 情况仍然如此 如果客户端应用程序将使用 PHP 的内置 SoapClien
  • 在哪里可以学习网络编程从入门到精通? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我尝试做教程 但它是无组织且无结构的 我在哪里可以学习 PHP 从初学者到大师 我正在寻找类似的网站w
  • 分页显示所有其他页面上第 1 页的相同帖子

    我最近在创建即将发生的事件列表时得到了很多帮助 请参阅此处显示即将举行的活动 包括今天的活动 https stackoverflow com questions 17343615 showing upcoming events includ
  • 在哪里可以获得 PHP 5.3+ 的 runkit DLL 扩展?

    这是一个简单的问题 我在哪里可以获得 PHP 5 3 版本的 runkit 扩展 它的手册 http php net manual en book runkit php http php net manual en book runkit
  • 使用值填充的 Symfony2 自定义字段类型

    这是先前问题的后续问题Symfony2 自定义表单类型或扩展 https stackoverflow com questions 24079288 symfony2 custom form type or extension 我正在尝试为订
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • 一次从多个表中删除行

    我正在尝试将 2 个查询合并为一个这样的查询 result db gt query DELETE FROM menu WHERE name new or die db gt error result db gt query DELETE F
  • CodeIgniter:My_Lang 中的 get_instance

    我发现这个有用的国际化代码 http pastebin com SyKmPYTX http pastebin com SyKmPYTX 一切正常 除了我无法在此类中使用 CI 函数 我想从 DB 设置 languages 和 special
  • 从 Laravel 4 输入生成新数组

    我使用 Input all 从动态生成的表单中获取一些输入 我使用 jQuery 来允许用户添加字段 字段名称为 first names last names 和 emails input 变量现在看起来像这样 array size 4 t
  • 使用会话 php 创建 cookie?

    我使用会话来登录我网站中的用户 问题是 我想让用户remember密码 因此关闭 打开浏览器后他们不需要再次登录 我需要使用 cookie 和 session 来实现它吗 my code user POST user pass POST p
  • PHP 拒绝从 var_dump、print 等输出数据

    我目前正在运行 WAMP 服务器 并且在过去的 30 分钟内一直在尝试弄清楚我的项目如何以及为什么不会输出任何指定的 PHP 数据 起初我以为是因为我有一个 htaccess文件的output buffering被禁用 所以我删除了它 仍然
  • Laravel 搜索关系

    我有两个相关的模型 我正在尝试在产品中进行搜索 并且仅显示实际搜索结果 而不是找到该产品的类别的所有产品 我不想搜索任何类别 因为无论搜索什么或找到什么 类别都会始终显示 Example I have the following categ

随机推荐

  • 插入耳机时有什么方法可以强制音频通过扬声器吗?

    我已经尝试过推荐的 setSpeakerphoneOn true 以及不推荐的 AudioSystem setForceUse AudioSystem FOR MEDIA AudioSystem FORCE SPEAKER 但两者都不起作用
  • $httpBackend .whenGet 不是 Angular 中的函数

    我正在尝试创建一个虚拟服务来获取 Angular 中的数据 我正在使用 ngMockE2E 我的 Mock 代码如下所示 function use strict var app angular module productResourceM
  • 使用 awk 解析日志文件

    我尝试使用以下代码解析日志文件 if line match then awk 2 vFiler echo vFiler 解释 有一些行以这样的模式开头 或 vol 后跟名称 我想找到所有以 或 vol 并将后面的字符串设置为等于变量 但我真
  • .htaccess 中 PDF 和图像文件的规范标题链接

    我正在尝试为我的网站上的许多 PDF 和图像文件设置 Canonical 链接 文件夹结构示例 index php docs file pdf folder1 file pdf folder2 file1 pdf file2 pdf img
  • 如何在 Android 中实现 React Native UI 组件方法

    我很清楚 对于react native本机模块 我们可以使用 ReactMethod导出一个方法并从 JSX 调用它 但是我们如何在 React Native 原生 UI 组件中做同样的事情呢 在文档中我只看到 ReactProp被提及 如
  • Excel 公式或 VBA:在具有 2 列条件的单独表中查找匹配的地址 - 无辅助列

    我需要公式结构方面的帮助 我有2张桌子 我想找到 a 列和 b 列相等的匹配项并获取表 2 中的地址 它们将是唯一的条目 例如 项目信息表 A B C 1 Name Company Project 2 Chris Evans Apple I
  • “服务 X 的应用程序端点为零”,除非我在代码中添加端点 - 为什么?

    我跟着这篇 MSDN 文章 http msdn microsoft com en us library ms733069 aspx完全创建托管在托管 NT 服务中的 WCF 服务 当我在服务控制台中单击 开始 时 我会在事件查看器中看到以下
  • 什么是冒烟测试?它对我有什么作用?

    我以为我理解烟雾服务器用于持续集成来衡量项目的性能和测试覆盖率 这基本上是正确的吗 对程序进行冒烟测试意味着什么 它是否仅仅意味着持续应用烟雾服务器上定义的测试 以便能够查明特定时间范围内的性能下降情况 这另一个问题 https stack
  • 调整 JTable 大小以适合行数

    我有一个JTable它将动态填充 我希望表始终调整大小以适应行数 我不需要任何滚动 因为表格位于面板中 并且需要打印面板的内容 我试过这个 Dimension d itemsTable getPreferredSize scrollPane
  • 如何使用 YUI Compressor.Net MSBuild 任务 2.3.0.0

    我尝试在网上搜索此问题的解决方案 但似乎很不清楚 听起来人们正在看到这一点 但解决方案似乎对我不起作用 我已从 NuGet 下载并安装 YUICompressor NET MSBuild 2 3 0 0 到我的项目中 我创建了一个 MSBu
  • “struct hack”在技术上是未定义的行为吗?

    我要问的是众所周知的 结构的最后一个成员具有可变长度 技巧 事情是这样的 struct T int len char s 1 struct T p malloc sizeof struct T 100 p gt len 100 strcpy
  • 如何保持 git 存储库的公共和私有版本同步?

    我正在 Github 上发布一个开源 Rails 应用程序 可能是 MIT 许可证 我还想维护一个项目的私人分支 分支 我们将使用它作为付费服务的一部分 在这种情况下组织存储库的最佳方式是什么 而且 当我有两个项目的更新时 如何保持项目同步
  • 应用示例,使用Android备份服务

    您知道任何 Android 应用程序 开源 如果可能的话 它使用安卓备份服务 http developer android com guide topics data backup html 我需要有关如何在实际应用程序中使用备份服务的示例
  • Objective C 中最好的多线程方法?

    我正在开发一个 iPad 应用程序 目前正在努力寻找多线程的最佳方法 让我用一个简化的例子来说明这一点 我有一个包含 2 个子视图的视图 一个目录选择器和一个包含所选目录中所有图像缩略图的图库 由于 下载 和生成这些缩略图可能需要相当长的时
  • 如何使用 jquery live 停止事件冒泡?

    我试图停止一些事件 但 stopPropagation 不适用于 实时 所以我不知道该怎么做 我在他们的网站上找到了这个 现场活动不会在 传统方式 不能 使用 stopPropagation 停止或 停止立即传播 例如 以两次点击事件为例
  • 标准数学函数在不同 CPU 上的再现性

    我正在做一个需要大量数学计算的项目 打开新的测试机后 我注意到很多测试都失败了 但同样重要的是要注意 测试在我的开发机器以及其他开发人员的某些机器上也失败了 经过跟踪值并与旧机器的值进行比较后 我发现一些功能 此时我只发现cosine ma
  • 如何使用三个JS导出然后导入场景?

    我有一个用三个 JS 和大量 Javascript 代码构建的复杂 3D 场景 我需要将此场景导出为一个文件 然后通过简单的 ThreeJS 场景播放器在我的网站上使用它 我尝试过 ObjectExporter 和 SceneExporte
  • Angular 2 无线电列表中的模型不会更新

    我正在尝试构建一个 Angular 2 组件 它显示带有无线电的选项列表 它工作正常 但它answer组件的字段 绑定在内部 ng model answer 选择其中一个选项时不会更新 我做错了什么还是这不是创建单选选项列表的方法 div
  • Inno Setup:有条件地删除用户主文件夹中的非空目录

    我正在通过 Inno Setup 为我的 Windows 应用程序创建安装程序 应用程序本身将一些配置数据写入用户主文件夹及其自己的子目录中 现在 在卸载过程中 我希望允许用户选择一个选项来删除该文件夹 该文件夹最初不是由 Inno Set
  • Google PageSpeed Insights API 无法正常工作 [PHP]

    我是 PHP 的初学者 所以也许有人可以帮助解决这个问题 我的网络应用程序显示 Google PageInsights API 错误 这是代码 我尝试将版本更改为 v2 但仍然不起作用 public function getPageSpee