当前位置: 首页 > 编程日记 > 正文

分享一个电视节目API接口PHP调用代码

央视及各地卫视的电视节目时间表,包括本周及下周的电视节目内容

  1.     获取电视台分类
    复制代码
  2.     获取电视频道
    复制代码
  3.     获取电视节目的详情
    复制代码

注意,该示例代码适用于 www.apishop.net网站下API 使用该产品前,您需要通过 https://www.apishop.net/#/api/detail/?productID=129申请API服务

1、获取电视台分类

<?php  
$method = "POST";  
$url = "https://api.apishop.net/common/tv/queryCategory";  
$headers = NULL;  
$params = array(          
);  $result = apishop_curl($method, $url, $headers, $params);  
If ($result) {  $body = json_decode($result["body"], TRUE);  $status_code = $body["statusCode"];  If ($status_code == "000000") {  //状态码为000000, 说明请求成功  echo "请求成功:" . $result["body"];  } else {  //状态码非000000, 说明请求失败  echo "请求失败:" . $result["body"];  }  
} else {  //返回内容异常,发送请求失败,以下可根据业务逻辑自行修改  echo "发送请求失败";  
}  /** * 转发请求到目的主机 * @param $method string 请求方法 * @param $URL string 请求地址 * @param null $headers 请求头 * @param null $param 请求参数 * @return array|bool */  
function apishop_curl(&$method, &$URL, &$headers = NULL, &$param = NULL)  
{  // 初始化请求  $require = curl_init($URL);  // 判断是否HTTPS  $isHttps = substr($URL, 0, 8) == "https://" ? TRUE : FALSE;  // 设置请求方式  switch ($method) {  case "GET":  curl_setopt($require, CURLOPT_CUSTOMREQUEST, "GET");  break;  case "POST":  curl_setopt($require, CURLOPT_CUSTOMREQUEST, "POST");  break;  default:  return FALSE;  }  if ($param) {  curl_setopt($require, CURLOPT_POSTFIELDS, $param);  }  if ($isHttps) {  // 跳过证书检查  curl_setopt($require, CURLOPT_SSL_VERIFYPEER, FALSE);  // 检查证书中是否设置域名  curl_setopt($require, CURLOPT_SSL_VERIFYHOST, 2);  }  if ($headers) {  // 设置请求头  curl_setopt($require, CURLOPT_HTTPHEADER, $headers);  }  // 返回结果不直接输出  curl_setopt($require, CURLOPT_RETURNTRANSFER, TRUE);  // 重定向  curl_setopt($require, CURLOPT_FOLLOWLOCATION, TRUE);  // 把返回头包含再输出中  curl_setopt($require, CURLOPT_HEADER, TRUE);  // 发送请求  $response = curl_exec($require);  // 获取头部长度  $headerSize = curl_getinfo($require, CURLINFO_HEADER_SIZE);  // 关闭请求  curl_close($require);  if ($response) {  // 返回头部字符串  $header = substr($response, 0, $headerSize);  // 返回体  $body = substr($response, $headerSize);  // 过滤隐藏非法字符  $bodyTemp = json_encode(array(  0 => $body  ));  $bodyTemp = str_replace("", "", $bodyTemp);  $bodyTemp = json_decode($bodyTemp, TRUE);  $body = trim($bodyTemp[0]);  // 将返回结果头部转成数组  $respondHeaders = array();  $header_rows = array_filter(explode(PHP_EOL, $header), "trim");  foreach ($header_rows as $row) {  $keylen = strpos($row, ":");  if ($keylen) {  $respondHeaders[] = array(  "key" => substr($row, 0, $keylen),  "value" => trim(substr($row, $keylen + 1))  );  }  }  return array(  "headers" => $respondHeaders,  "body" => $body  );  } else {  return FALSE;  }  
}  
复制代码

2、获取电视频道

<?php  
$method = "POST";  
$url = "https://api.apishop.net/common/tv/queryTVChannel";  
$headers = NULL;  
$params = array(              "categoryName"=>"" //频道分类名称(从获取频道分类接口获得,如“央视”)        
);  $result = apishop_curl($method, $url, $headers, $params);  
If ($result) {  $body = json_decode($result["body"], TRUE);  $status_code = $body["statusCode"];  If ($status_code == "000000") {  //状态码为000000, 说明请求成功  echo "请求成功:" . $result["body"];  } else {  //状态码非000000, 说明请求失败  echo "请求失败:" . $result["body"];  }  
} else {  //返回内容异常,发送请求失败,以下可根据业务逻辑自行修改  echo "发送请求失败";  
}  /** * 转发请求到目的主机 * @param $method string 请求方法 * @param $URL string 请求地址 * @param null $headers 请求头 * @param null $param 请求参数 * @return array|bool */  
function apishop_curl(&$method, &$URL, &$headers = NULL, &$param = NULL)  
{  // 初始化请求  $require = curl_init($URL);  // 判断是否HTTPS  $isHttps = substr($URL, 0, 8) == "https://" ? TRUE : FALSE;  // 设置请求方式  switch ($method) {  case "GET":  curl_setopt($require, CURLOPT_CUSTOMREQUEST, "GET");  break;  case "POST":  curl_setopt($require, CURLOPT_CUSTOMREQUEST, "POST");  break;  default:  return FALSE;  }  if ($param) {  curl_setopt($require, CURLOPT_POSTFIELDS, $param);  }  if ($isHttps) {  // 跳过证书检查  curl_setopt($require, CURLOPT_SSL_VERIFYPEER, FALSE);  // 检查证书中是否设置域名  curl_setopt($require, CURLOPT_SSL_VERIFYHOST, 2);  }  if ($headers) {  // 设置请求头  curl_setopt($require, CURLOPT_HTTPHEADER, $headers);  }  // 返回结果不直接输出  curl_setopt($require, CURLOPT_RETURNTRANSFER, TRUE);  // 重定向  curl_setopt($require, CURLOPT_FOLLOWLOCATION, TRUE);  // 把返回头包含再输出中  curl_setopt($require, CURLOPT_HEADER, TRUE);  // 发送请求  $response = curl_exec($require);  // 获取头部长度  $headerSize = curl_getinfo($require, CURLINFO_HEADER_SIZE);  // 关闭请求  curl_close($require);  if ($response) {  // 返回头部字符串  $header = substr($response, 0, $headerSize);  // 返回体  $body = substr($response, $headerSize);  // 过滤隐藏非法字符  $bodyTemp = json_encode(array(  0 => $body  ));  $bodyTemp = str_replace("", "", $bodyTemp);  $bodyTemp = json_decode($bodyTemp, TRUE);  $body = trim($bodyTemp[0]);  // 将返回结果头部转成数组  $respondHeaders = array();  $header_rows = array_filter(explode(PHP_EOL, $header), "trim");  foreach ($header_rows as $row) {  $keylen = strpos($row, ":");  if ($keylen) {  $respondHeaders[] = array(  "key" => substr($row, 0, $keylen),  "value" => trim(substr($row, $keylen + 1))  );  }  }  return array(  "headers" => $respondHeaders,  "body" => $body  );  } else {  return FALSE;  }  
}  
复制代码

3、获取电视节目的详情

<?php  
$method = "POST";  
$url = "https://api.apishop.net/common/tv/queryTVProgram";  
$headers = NULL;  
$params = array(              "id"=>"" //频道ID(从获取频道接口获得)            "date"=>"" //日期(格式:yyyy-mm-dd,如“2017-09-27”),默认当天         
);  $result = apishop_curl($method, $url, $headers, $params);  
If ($result) {  $body = json_decode($result["body"], TRUE);  $status_code = $body["statusCode"];  If ($status_code == "000000") {  //状态码为000000, 说明请求成功  echo "请求成功:" . $result["body"];  } else {  //状态码非000000, 说明请求失败  echo "请求失败:" . $result["body"];  }  
} else {  //返回内容异常,发送请求失败,以下可根据业务逻辑自行修改  echo "发送请求失败";  
}  /** * 转发请求到目的主机 * @param $method string 请求方法 * @param $URL string 请求地址 * @param null $headers 请求头 * @param null $param 请求参数 * @return array|bool */  
function apishop_curl(&$method, &$URL, &$headers = NULL, &$param = NULL)  
{  // 初始化请求  $require = curl_init($URL);  // 判断是否HTTPS  $isHttps = substr($URL, 0, 8) == "https://" ? TRUE : FALSE;  // 设置请求方式  switch ($method) {  case "GET":  curl_setopt($require, CURLOPT_CUSTOMREQUEST, "GET");  break;  case "POST":  curl_setopt($require, CURLOPT_CUSTOMREQUEST, "POST");  break;  default:  return FALSE;  }  if ($param) {  curl_setopt($require, CURLOPT_POSTFIELDS, $param);  }  if ($isHttps) {  // 跳过证书检查  curl_setopt($require, CURLOPT_SSL_VERIFYPEER, FALSE);  // 检查证书中是否设置域名  curl_setopt($require, CURLOPT_SSL_VERIFYHOST, 2);  }  if ($headers) {  // 设置请求头  curl_setopt($require, CURLOPT_HTTPHEADER, $headers);  }  // 返回结果不直接输出  curl_setopt($require, CURLOPT_RETURNTRANSFER, TRUE);  // 重定向  curl_setopt($require, CURLOPT_FOLLOWLOCATION, TRUE);  // 把返回头包含再输出中  curl_setopt($require, CURLOPT_HEADER, TRUE);  // 发送请求  $response = curl_exec($require);  // 获取头部长度  $headerSize = curl_getinfo($require, CURLINFO_HEADER_SIZE);  // 关闭请求  curl_close($require);  if ($response) {  // 返回头部字符串  $header = substr($response, 0, $headerSize);  // 返回体  $body = substr($response, $headerSize);  // 过滤隐藏非法字符  $bodyTemp = json_encode(array(  0 => $body  ));  $bodyTemp = str_replace("", "", $bodyTemp);  $bodyTemp = json_decode($bodyTemp, TRUE);  $body = trim($bodyTemp[0]);  // 将返回结果头部转成数组  $respondHeaders = array();  $header_rows = array_filter(explode(PHP_EOL, $header), "trim");  foreach ($header_rows as $row) {  $keylen = strpos($row, ":");  if ($keylen) {  $respondHeaders[] = array(  "key" => substr($row, 0, $keylen),  "value" => trim(substr($row, $keylen + 1))  );  }  }  return array(  "headers" => $respondHeaders,  "body" => $body  );  } else {  return FALSE;  }  
}  
复制代码

转载于:https://juejin.im/post/5ae2d9f0f265da0b722ada14

相关文章:

用Zend Stuido 的WSDL编辑器

文件->新建->其他->Webservice->WSDL新建WSDL下一步点完成生成如下wsdlTestSoapSoap下面填写php webService 如myservice.phpNewOption:添加方法。WebService里需要提供给别人调用的方法名input &#xff1a;设置输入参数名和类型output&#xff1a;设置返回值。Ad…

坐地铁就能学会的3种非常有趣的 Python 玩法

作者 | 黄伟呢来源 | 数据分析与统计学之美本文说明为什么要学习python&#xff1f;是因为不仅很多工作需要用到python&#xff0c;同时我们可以利用python做很多好玩儿的事儿。比如说下面的3种用法&#xff1a;1.利用python给小猪佩奇换背景色&#xff1b;2.利用python将小猪佩…

asp.net input怎么获取值

前台&#xff1a; <input type"hidden" name"content" value"content"> 后台&#xff1a; Request.Form["content"].ToString(); 切记&#xff1a;name不能缺少&#xff0c;id可由可无。>如有问题&#xff0c;请联系我&…

koa2 简单了解

为什么80%的码农都做不了架构师&#xff1f;>>> 1.安装 $ nvm install 7 $ npm i koa $ node my-koa-app.js2.简介 基于ES7开发的koa2&#xff0c;和koa 1相比&#xff0c;koa2完全使用Promise并配合async来实现异步。 app.use(async (ctx, next) > {await next…

亚洲最大的元宇宙平台,体验在豪宅里开party

整理 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 想象一下&#xff0c;你刚刚得到了你愿望清单上一直想拥有的生活方式&#xff0c;电视、可提高您生活质量的家用电器以及最新款时尚智能手机。现在&#xff0c;如果我们告诉你可以使用这些创新产品来装…

html5知识点补充—hgroup元素的使用

使用hgroup元素组合标题 使用新的HTML5元素hgroup&#xff0c;可以为header元素添加更多的信息。 这个元素用来对多个相关联的h1~h6标题进行分组。如果你的网站有副标题&#xff0c;可以使用hgroup元素。虽然hgroup是一个有效的分组选项&#xff0c;但是它主要是用来告知文档大…

Linux下nginx支持.htaccess文件实现伪静态的方法!

在Google上搜索的资料很多人都说nginx目前不支持.htaccess文件&#xff0c;我按照nginx的规则试验了一下&#xff0c;结果发现nginx是完全支持.htaccess文件的&#xff01; 方法如下&#xff1a;1. 在需要使用.htaccess文件的目录下新建一个.htaccess文件&#xff0c;如本人的一…

查看mysql的编码格式

1.查看数据库编码格式 show variables like character_set_database; 2.查看数据表的编码格式 show create table <表名>; 3.创建数据库时指定数据库的字符集 create database <数据库名> character set utf8; 4.创建数据表时指定数据表的编码格式 create table tb…

undefined reference to `libiconv_open 无法编译PHP libiconv

原文&#xff1a;http://hi.baidu.com/ostech/blog/item/a63f9b0dabed1ae7ab6457d0.html./configure --with-mysql/backup/mysql --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-curl --with-gd --enable-gd-native-ttf --with-apxs2/usr/local/apach…

Meta 被爆暂停 AR/VR 操作系统项目,元宇宙能否推进?

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 据 The Information 的近日报道&#xff0c;Meta 已经停止了一直以来为 AR 和 VR 操作系统的努力。在11月就通知了负责 VR 和 AR 设备的实验室的员工&#xff0c;表示将要停止 XROS 相关的开发工作。 …

DevOps:怎么实现源代码注释和系统文档的自动化更新?

【编者按】计算机软件传统定义为&#xff1a;软件是计算机系统中与硬件相依存的另一部分&#xff0c;软件包括程序、数据及其相关文档的完整集合。然而在时下的开发中&#xff0c;文档的合规性往往被忽视的干干净净。本文由 Todd Waits 撰写&#xff0c;讲述应用程序文档化所遭…

在Kubernetes v1.8中使用RBAC

Kubernetes 1.8一个重要里程碑是推出了基于角色的访问控制(RBAC)授权&#xff0c;在这个版本中被提升为GA。RBAC是一种控制访问Kubernetes API的机制&#xff0c;因为在1.6中推出beta版&#xff0c;许多Kubernetes集群和配置策略在默认情况下都启用了它。展望未来&#xff0c;我…

Java String.substring内存泄露?

2019独角兽企业重金招聘Python工程师标准>>> String可以说是最常用的Java类型之一了&#xff0c;但是最近听说JDK6里面String.substring存在内存泄露的bug&#xff0c;伙惊呆&#xff01;一起来看看到底是啥情况吧。 这个是可以导致Exception in thread "main&…

第二弹,坐地铁就能学会的3种「非常有趣」的 Python 玩法

作者 | 黄伟呢来源 | 数据分析与统计学之美本文说明为什么要学习python&#xff1f;是因为不仅很多工作需要用到python&#xff0c;同时我们可以利用python做很多好玩儿的事儿。比如说下面的3种用法&#xff1a;1.利用python给小猪佩奇换背景色&#xff1b;2.利用python将小猪佩…

php比较长的configure

原先的字串./configure --prefix/usr/local/php --with-apxs2/usr/local/apache2/bin/apxs --enable-zip --enable-calendar --with-mysql/usr/local/mysql --with-pdo-mysql/usr/local/mysql --with-iconv/usr/local/libiconv --with-curl/usr/local/curl --with-gd/usr/local…

用mpvue实现的微信小程序版cnode社区

五一放假&#xff0c;没出去玩&#xff0c;想熟悉下vue的开发流程&#xff0c;又想体验下mpvue&#xff0c;于是写了个练手项目。一个用mpvue实现的cnode微信小程序版。 代码在仓库。欢迎各位star、fork、issue、pr。目前已经完成了百分之80的功能。个人感觉这个项目还是非常适…

PHP编译安装

#wget http://museum.php.net/php5/php-5.2.6.tar.gz &#xff08;下载php源码&#xff09; http://cn.php.net/releases/ 可以找到 #tar zxvf php-5.2.6.tar.gz #cd php-5.2.6 #./configure --prefix/usr/local/php --with-mysql/usr/local/mysql --with-apxs2/usr/local/apa…

Python 办公自动化,一键给PDF文件加密,超方便

作者 | 欣一来源 | Python爱好者集中营今天给大家做一个给PDF文件加密的GUI界面(图形用户界面)&#xff0c;方便现在的一些上班族白领们使用&#xff0c;尤其是需要给一些比较重要的PDF文件加密的时候&#xff0c;下面我们来看具体的步骤给PDF文件加密首先我们需要清楚的是如何…

YUM安装多个(多实例) Mysql

2019独角兽企业重金招聘Python工程师标准>>> 这里使用的是MYSQL的percona分支 先安装repo包 yum install percona-release-0.0-1.x86_64.rpm -y 想安装5.6的把5.5替换就行了,5.6的太耗内存了-。- yum install Percona-Server-server-55.x86_64 Percona-Server-clien…

scala可变长度参数函数

2019独角兽企业重金招聘Python工程师标准>>> scala可变长度参数函数只需要在参数列表的最后放一个星号&#xff0c;实验如下&#xff1a; def main (args:Array[String]){argsfun("Runoob", "Scala", "Python")} def argsfun(args:St…

3000 字推荐一个可视化神器,50 行 Python 代码制作数据大屏

作者 | 俊欣来源 | 关于数据分析与可视化今天小编给大家分享一个制作数据大屏的工具&#xff0c;非常的好用&#xff0c;100行左右的Python代码就可以制作出来一个完整的数据大屏&#xff0c;并且代码的逻辑非常容易理解。PywebIO介绍Python当中的PywebIO模块可以帮助开发者在不…

使用Varnish+ESI实现静态页面的局部缓存

页面静态化是搭建高性能网站必用的招式之一&#xff0c;页面静态化可以有效提升系统响应速度&#xff0c;同时也有利于搜索引擎优化。但在页面静态化后&#xff0c;静态页面之间包含&#xff08;例如所有的静态页面包含页头、页脚&#xff09;以及静态页面中的局部信息的动态更…

The Apply method of function object

2019独角兽企业重金招聘Python工程师标准>>> http://webreference.com As explained in the previous page, JavaScript 1.3 includes two new methods for the Function object, call() andapply(). The apply() method is a variation on the call() method. The …

资源 | 100+个自然语言处理数据集大放送,再不愁找不到数据!

奉上100多个按字母顺序排列的开源自然语言处理文本数据集列表&#xff08;原始未结构化的文本数据&#xff09;&#xff0c;快去按图索骥下载数据自己研究吧&#xff01; 数据集 Apache软件基金会公开邮件档案&#xff1a;截止到2011年7月11日全部公开可用的Apache软件基金会邮…

Java中ArrayList源码分析

一、简介 ArrayList是一个数组队列&#xff0c;相当于动态数组。每个ArrayList实例都有自己的容量&#xff0c;该容量至少和所存储数据的个数一样大小&#xff0c;在每次添加数据时&#xff0c;它会使用ensureCapacity()保证容量能容纳所有数据。 1.1、ArrayList 的继承与实现接…

介绍三种绘制时间线图的方法

作者 |周萝卜来源 |萝卜大杂烩今天我们再来分享几种不同的制作方法&#xff0c;大家可以自行比较下各种方法的优劣。Matplotlib 制作Matplotlib 作为 Python 家族最为重要的可视化工具&#xff0c;其基本的 API 以及绘制流程还是需要掌握的。尤其是该库的灵活程度以及作为众多工…

phpize是什么

安装php&#xff08;fastcgi模式&#xff09;的时候&#xff0c;常常有这样一句命令&#xff1a;/usr/local/webserver/php/bin/phpize 一、phpize是干嘛的&#xff1f; phpize是什么东西呢&#xff1f;php官方的说明&#xff1a; http://php.net/manual/en/install.pecl.phpiz…

C语言比较好的风格梳理

errno int err;tb malloc(sizeof(struct xtracer_table));if (!tb) {err errno;fprintf(stderr, "%s:%d, errno:%d, %s\n",__func__, __LINE__, err, strerror(err));return NULL;} 转载于:https://www.cnblogs.com/muahao/p/8979144.html

Linux下Memcache服务器端的安装

Linux下Memcache服务器端的安装服务器端主要是安装memcache服务器端&#xff0c;目前的最新版本是 memcached-1.3.0 。下载&#xff1a;http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz http://memcached.googlecode.com/files/memcached-1.4.9.tar.gz 另外&#…

如何用技术恢复模糊的图像?在线教学…

作者 |小白 来源 |小白学视觉 有人认为恢复模糊的图像是不可能的&#xff0c;因为会丢失信息。但我对这个问题进行了很多思考&#xff0c;并认为如果输出图像的大小与输入图像的大小相同&#xff0c;那实际上是可能的&#xff01;这样&#xff0c;输出就有足够的像素/信息来恢复…