php微信公众号开发之校园图书馆
时间:2022-07-27
本文章向大家介绍php微信公众号开发之校园图书馆,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例为大家分享了php微信公众号图书馆的具体代码,供大家参考,具体内容如下
图书来源:山东理工大学图书馆书目检索系统
搜索书名返回是xml格式数据:
核心代码如下:
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj- FromUserName;
$toUsername = $postObj- ToUserName;
$keyword = trim($postObj- Content);
$time = time();
$textTpl = "<xml
<ToUserName <![CDATA[%s]] </ToUserName
<FromUserName <![CDATA[%s]] </FromUserName
<CreateTime %s</CreateTime
<MsgType <![CDATA[news]] </MsgType
<ArticleCount 3</ArticleCount
<Articles
<item
<Title <![CDATA[%s]] </Title
<Description <![CDATA[s]] </Description
<PicUrl <![CDATA[url]] </PicUrl
<Url <![CDATA[url]] </Url
</item
<item
<Title <![CDATA[%s]] </Title
<Description <![CDATA[s]] </Description
<PicUrl <![CDATA[url]] </PicUrl
<Url <![CDATA[url]] </Url
</item
<item
<Title <![CDATA[%s]] </Title
<Description <![CDATA[s]] </Description
<PicUrl <![CDATA[url]] </PicUrl
<Url <![CDATA[url]] </Url
</item
</Articles
<FuncFlag 1</FuncFlag
</xml ";
$url="http://222.206.65.12/opac/search_rss.php?dept=ALL&title={$keyword}&doctype=ALL&lang_code=ALL&match_flag=forward&displaypg=20&showmode=list&orderby=DESC&sort=CATA_DATE&onlylendable=no";
$fa=file_get_contents($url);
$f=simplexml_load_string($fa);
$da1=$f- channel- item[0]- title;
$da2=$f- channel- item[1]- title;
$da3=$f- channel- item[2]- title;
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time,$da1,$da2,$da3);
echo $resultStr;
index.php整体代码如下:
<?php
/**
* wechat php test
*/
//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj- responseMsg();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
//valid signature , option
if($this- checkSignature()){
echo $echoStr;
exit;
}
}
public function responseMsg()
{
//get post data, May be due to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//extract post data
if (!empty($postStr)){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj- FromUserName;
$toUsername = $postObj- ToUserName;
$keyword = trim($postObj- Content);
$time = time();
$textTpl = "<xml
<ToUserName <![CDATA[%s]] </ToUserName
<FromUserName <![CDATA[%s]] </FromUserName
<CreateTime %s</CreateTime
<MsgType <![CDATA[news]] </MsgType
<ArticleCount 3</ArticleCount
<Articles
<item
<Title <![CDATA[%s]] </Title
<Description <![CDATA[s]] </Description
<PicUrl <![CDATA[url]] </PicUrl
<Url <![CDATA[url]] </Url
</item
<item
<Title <![CDATA[%s]] </Title
<Description <![CDATA[s]] </Description
<PicUrl <![CDATA[url]] </PicUrl
<Url <![CDATA[url]] </Url
</item
<item
<Title <![CDATA[%s]] </Title
<Description <![CDATA[s]] </Description
<PicUrl <![CDATA[url]] </PicUrl
<Url <![CDATA[url]] </Url
</item
</Articles
<FuncFlag 1</FuncFlag
</xml ";
$url="http://222.206.65.12/opac/search_rss.php?dept=ALL&title={$keyword}&doctype=ALL&lang_code=ALL&match_flag=forward&displaypg=20&showmode=list&orderby=DESC&sort=CATA_DATE&onlylendable=no";
$fa=file_get_contents($url);
$f=simplexml_load_string($fa);
$da1=$f- channel- item[0]- title;
$da2=$f- channel- item[1]- title;
$da3=$f- channel- item[2]- title;
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time,$da1,$da2,$da3);
echo $resultStr;
}else {
echo "";
exit;
}
}
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
?
以上就是本文的全部内容,希望对大家的学习有所帮助。
- 简单易学的机器学习算法——因子分解机(Factorization Machine)
- Elasticsearch全文检索实战小结——复盘我带的第二个项目
- golang语言是如何处理栈的
- 【Go 语言社区】并发性
- GoldenGate数据迁移的问题总结(一)(r10笔记第84天)
- Elasticsearch大文件检索性能提升20倍实践(干货)
- Elasticsearch聚合优化 | 聚合速度提升5倍!
- Elasticsearch聚合后分页深入详解
- 可扩展机器学习——线性回归(linear Regression)
- 简单易学的机器学习算法——Label Propagation
- 利用Theano理解深度学习——Convolutional Neural Networks
- 持续精进——我的2017年终总结
- 实战 | Elasticsearch打造知识库检索系统
- Elasticsearch实战 | 必要的时候,还得空间换时间!
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- spring的缓存(cache)-本地
- spring的缓存(cache)-分布式缓存
- spring的缓存(cache)-(缓存穿透、缓存击穿、缓存雪崩、热点数据)
- spring-配置文件外化
- 腾讯地图获取全国行政区划检索列表Demo
- iOS开发~UIView layer 之前的关系
- iOS进阶_KVC(&KVC赋值取值过程分析&KVC自定义&异常处理)
- python 学习笔记(8)——python绝对路径相对路径
- 设计模式-访问者模式
- 设计模式-空对象模式
- 设计模式-观察者模式
- Selenium自动化最佳实践技巧(上)
- 如何同时压测创建和删除接口
- 为什么测试覆盖率如此重要
- 5行Python就能爬取 3000+ 上市公司的信息?