PHP网页编程之PHP 微信接口封装类(PHP100)
左手拿着MOTOLOLA右手拿着NOKIA,要多潇洒,有多潇洒,哈哈,终于学会了,但是可能这个时候,又会有人不经意的拍拍肩膀对你说:哥们,别高兴的太早,你还是菜鸟,离学会还差着一大截呢!<?php /** * 微信"大众平台接口PHP100封装功效类文件 * author PHP100.com张恩平易近 * date 2013-4-9 PRC:E+8 23:03 * linkme QQ925939 chuangen.com */ define("TOKEN", "chuangenit"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->weixin_run(); //履行吸收器办法 class wechatCallbackapiTest { private $fromUsername; private $toUsername; private $times; private $keyword; public function weixin_run(){ $this->responseMsg(); $arr[]=array("创恩很靠谱,PHP100也不错!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www.chuangen.com"); $arr[]=array("创恩很靠谱,PHP100也不错!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www.chuangen.com"); $arr[]=array("创恩很靠谱,PHP100也不错!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www.chuangen.com"); $this->fun_xml("news",$arr,array(2,0)); } function t($n){ include("t_api.php"); $c_name=$t_api[$n]; $json=file_get_contents("http://m.weather.com.cn/data/101110310.html"); return json_decode($json); } public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this->checkSignature()){ echo $echoStr; exit; } } public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $this->fromUsername = $postObj->FromUserName; $this->toUsername = $postObj->ToUserName; $this->keyword = trim($postObj->Content); $this->times = time(); }else { echo "this a file for weixin API!"; exit; } } //微信封装类, //type: text 文本类型, news 图文类型 //text,array(内容),array(ID) //news,array(array(题目,引见,图片,超链接),...小于10条),array(条数,ID) private function fun_xml($type,$value_arr,$o_arr=array(0)){//=================xml header============$con="<xml> <ToUserName><!]></ToUserName> <FromUserName><!]></FromUserName> <CreateTime>{$this->times}</CreateTime> <MsgType><!]></MsgType>"; //=================type content============switch($type){ case "text" : $con.="<Content><!}]]></Content> <FuncFlag>{$o_arr}</FuncFlag>"; break; case "news" : $con.="<ArticleCount>{$o_arr}</ArticleCount> <Articles>"; foreach($value_arr as $id=>$v){ if($id>=$o_arr) break; else null; //判别数组数不超越设置数 $con.="<item> <Title><!}]]></Title><Description><!}]]></Description> <PicUrl><!}]]></PicUrl> <Url><!}]]></Url> </item>"; } $con.="</Articles> <FuncFlag>{$o_arr}</FuncFlag>"; break; } //end switch //=================end return============echo $con."</xml>"; } 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; } } } ?>终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了, 做为1门年轻的语言,php一直很努力。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。 基础有没有对学习php没有太大区别,关键是兴趣。 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标, 个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
页:
[1]