Easy language + PHP realizes self-built database data and connects with public accounts and Turing robots compatible with micro-like framework calls

Basic docking implementation effect:

You can modify it yourself according to the PHP code. Here I am completely calling my own resource library, which also has the method of docking Turing. It is very simple. You need to apply for the key yourself, but it seems that Turing has started to charge now. It depends on you whether you use it or not. To myself:

Insert image description here
Database design:
just a few fields, very simple.

Insert image description here

Easy language side: Collect and enter data
. Do it yourself. It is relatively simple. Just connect it directly to the mysql database. This is probably how I designed it.
Insert image description herePHP side: query interface

<?PHP
header("Content-type: text/html; charset=utf-8");
$keyword=$_GET['wd'];//关键词,与条数
$type=$_GET['type'];
$num=$_GET['num'];
if($num<1||$num>15){
    
    $num=5;}//默认不允许超过15条,防止异常或被采集
require 'var.php';
$con=mysql_connect($dbip,$dbusername,$dbpassword);
mysql_query("SET NAMES UTF8");
mysql_query("set character_set_client=utf8"); 
mysql_query("set character_set_results=utf8");
mysql_select_db($dbname,$con);
$sql = "SELECT title,details FROM `zdhf` WHERE title like '%".$keyword."%'  order by id desc  LIMIT 0 ,".$num."" ;
$result_query=mysql_query($sql);
$results = array();
while ($row = mysql_fetch_assoc($result_query)) {
    
    
if($type=="json"){
    
    $results[] = $row;}
  else{
    
     $json=$json.$row['title'].'<br>'.$row['details'].'<br> ';}
  
}
mysql_close($con);

$json=str_replace("?","",$json);
if($type=="json"){
    
    
$json=json_encode($results);
}


if($json==""){
    
    
$json="没有找到数据...~";
}

echo $json;
?>

The following is the official account interface:

<?php
/********************************************/
/********** 作者微信:huang582716403 **********/
/****************************************/
header("Content-type: text/html; charset=utf-8"); 
define("TOKEN", "weixin");//在此配置Token信息,默认为:weixin
$wechatObj = new wechatCallbackapiTest();//将名为wechatCallbackapiTest的class类实例化 
if (!isset($_GET['echostr'])) {
    
    
    $wechatObj->responseMsg();
}else{
    
    
    $wechatObj->valid();//使用-》访问类中valid方法,用来验证开发模式  
}

class wechatCallbackapiTest
{
    
    
    //签名及接口验证
    public function valid()//验证接口的方法
    {
    
    
        $echoStr = $_GET["echostr"];//从微信用户端获取一个随机字符赋予变量echostr
        //valid signature , option访问地的checkSignature签名验证方法,如果签名一致,输出变量echostr,完整验证配置接口的操作  
        if($this->checkSignature()){
    
      
            echo $echoStr;  
            exit;  
        } 
		/*
		$signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode($tmpArr);
        $tmpStr = sha1($tmpStr);
        if($tmpStr == $signature){
            echo $echoStr;
            exit;
        }
		*/
    }

function getSubstr($str, $leftStr, $rightStr)
   {
    
    
        $left = strpos($str, $leftStr);
        //echo '左边:'.$left;
        $right = strpos($str, $rightStr,$left);
        //echo '<br>右边:'.$right;
        if($left < 0 or $right < $left) return '';
        return substr($str, $left + strlen($leftStr), $right-$left-strlen($leftStr));
        }
  
  
  
  
    //响应消息,公有的responseMsg的方法,是我们回复微信的关键。以后的章节修改代码就是修改这个。
    public function responseMsg()
    {
    
    
		//get post data, May be due to the different environments 
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
		//将用户端放松的数据保存到变量postStr中,由于微信端发送的都是xml,使用postStr无法解析,故使用$GLOBALS["HTTP_RAW_POST_DATA"]获取  
		
		//extract post data用户端数据非空判断
        if (!empty($postStr)){
    
    
				$this->logger("R ".$postStr);
                libxml_disable_entity_loader(true);
              	$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);		//将postStr变量进行解析并赋予变量postObj。simplexml_load_string()函数是php中一个解析XML的函数,SimpleXMLElement为新对象的类,LIBXML_NOCDATA表示将CDATA设置为文本节点,CDATA标签中的文本XML不进行解析  
                $fromUsername = $postObj->FromUserName;//将微信用户端的用户名赋予变量FromUserName  
                $toUsername = $postObj->ToUserName;//将你的微信公众账号ID赋予变量ToUserName  
                $keyword = trim($postObj->Content);//将用户微信发来的文本内容去掉空格后赋予变量keyword 
				
				$RX_TYPE = trim($postObj->MsgType);
				
				$event = $postObj->Event;
                $time = time();//将系统时间赋予变量time 
				$newsTplHeader = "<xml>
							<ToUserName><![CDATA[%s]]></ToUserName>
							<FromUserName><![CDATA[%s]]></FromUserName>
							<CreateTime>%s</CreateTime>
							<MsgType><![CDATA[news]]></MsgType>
							<ArticleCount>%s</ArticleCount>
							<Articles>";

				$newsTplItem = "<item>
							<Title><![CDATA[%s]]></Title> 
							<Description><![CDATA[%s]]></Description>
							<PicUrl><![CDATA[%s]]></PicUrl>
							<Url><![CDATA[%s]]></Url>
							</item>";
						
				$newsTplFooter="</Articles>
							</xml>";
							
				//构建XML格式的文本赋予变量textTpl,注意XML格式为微信内容固定格式,详见文档  
                $textTpl = "<xml>
							<ToUserName><![CDATA[%s]]></ToUserName>
							<FromUserName><![CDATA[%s]]></FromUserName>
							<CreateTime>%s</CreateTime>
							<MsgType><![CDATA[%s]]></MsgType>
							<Content><![CDATA[%s]]></Content>
							<FuncFlag>0</FuncFlag>
							</xml>";    
							//%s表示要转换成字符的数据类型,CDATA表示不转义  
                            //为微信来源方  
                            //为系统时间  
                            //为回复微信的信息类型  
                            //为回复微信的内容  
                            //为是否星标微信  
                            //XML格式文本结束符号  
							
				$picTpl = "<xml>
                            <ToUserName><![CDATA[".$fromUsername."]]></ToUserName>
                            <FromUserName><![CDATA[".$toUsername."]]></FromUserName>
                            <CreateTime>".$time."</CreateTime>
                            <MsgType><![CDATA[news]]></MsgType>
                            <Content><![CDATA[]]></Content>
                            <ArticleCount>%d</ArticleCount>
                            <Articles>
                            %s
                            </Articles>
                            <FuncFlag>1</FuncFlag>
							</xml>";
							
				$newsTpl = "<xml>
							<ToUserName><![CDATA[%s]]></ToUserName>
							<FromUserName><![CDATA[%s]]></FromUserName>
							<CreateTime>%s</CreateTime>
							<MsgType><![CDATA[news]]></MsgType>
							<ArticleCount>1</ArticleCount>
							<Articles>
							<item>
							<Title><![CDATA[%s]]></Title> 
							<Description><![CDATA[%s]]></Description>
							<PicUrl><![CDATA[%s]]></PicUrl>
							<Url><![CDATA[%s]]></Url>
							</item>							
							</Articles>
							</xml>";
				switch($RX_TYPE)
				{
    
    
					case 'event':

						if($event == 'subscribe')
						{
    
    
							
						//关注后的回复
						$contentStr = '您好,欢迎关注我们,
输入关键词,开始搜索之旅吧!';

						$msgType = 'text';
						$textTpl = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
						echo $textTpl;
                        }
						break;
					//回复文本信息类型为text型,变量类型为msgType 
					case 'text':
						//if(preg_match('/[\x{4e00}-\x{9fa5}]+/u',$keyword))正则判断
						$keyword = strtolower($keyword);
						
						
             				if($keyword=="怎么用" || $keyword == "使用帮助"  || $keyword == "你好")
						{
    
    
							$contentStr = '您好, 请输入资源名称即可!';
							$msgType = 'text';
							$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
							echo $resultStr;
						}
					
                    
						
						else if($keyword!="")
						{
    
    	
                           	
                         	
							$contentStr=file_get_contents("你自己上面的接口地址xxxxx/api/s.php?wd=".urlencode($keyword));
                          $contentStr= str_replace("<br>","\r\n\r\n",$contentStr);
                            $msgType = 'text';
							$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
							echo $resultStr;
                        }
						
					
						
						else{
    
    
							//调用图灵接口,进行自动回复!
							$a = rawurlencode($keyword);
							$url="http://www.tuling123.com/openapi/api?key=7xxxxxf&info=$a";
							$html = file_get_contents($url); 
							$de_json = json_decode($html,TRUE);  
							 
							$xiaoxi=$de_json["text"];
							$dizhi=$de_json["url"];
							
							$contentStr = $xiaoxi.$dizhi."";
							$msgType = 'text';
							$textTpl = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
							echo $textTpl;
							}
									
						break;
					default:
						break;
				}
				$this->logger("T ".$result);
				echo $result;
        }else {
    
    
        exit;
        }
    }

    //接收事件消息
    private function receiveEvent($object)
    {
    
    
        $content = "";
        switch ($object->Event)
        {
    
    
            case "subscribe":
                $content = "欢迎关注! ";
                $content .= (!empty($object->EventKey))?("\n来自二维码场景 ".str_replace("qrscene_","",$object->EventKey)):"";
                break;
            case "unsubscribe":
                $content = "取消关注";
                break;
            case "CLICK":
                switch ($object->EventKey)
                {
    
    
                    case "COMPANY":
						$content = "互联网相关信息与服务。";
                        //$content = array();
                        //$content[] = array("Title"=>"寻片网", "Description"=>"", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
                        break;
                    default:
                        $content = "点击菜单:".$object->EventKey;
                        break;
                }
                break;
            case "VIEW":
                $content = "跳转链接 ".$object->EventKey;
                break;
            case "SCAN":
                $content = "扫描场景 ".$object->EventKey;
                break;
            case "LOCATION":
                $content = "上传位置:纬度 ".$object->Latitude.";经度 ".$object->Longitude;
                break;
            case "scancode_waitmsg":
                if ($object->ScanCodeInfo->ScanType == "qrcode"){
    
    
                    $content = "扫码带提示:类型 二维码 结果:".$object->ScanCodeInfo->ScanResult;
                }else if ($object->ScanCodeInfo->ScanType == "barcode"){
    
    
                    $codeinfo = explode(",",strval($object->ScanCodeInfo->ScanResult));
                    $codeValue = $codeinfo[1];
                    $content = "扫码带提示:类型 条形码 结果:".$codeValue;
                }else{
    
    
                    $content = "扫码带提示:类型 ".$object->ScanCodeInfo->ScanType." 结果:".$object->ScanCodeInfo->ScanResult;
                }
                break;
            case "scancode_push":
                $content = "扫码推事件";
                break;
            case "pic_sysphoto":
                $content = "系统拍照";
                break;
            case "pic_weixin":
                $content = "相册发图:数量 ".$object->SendPicsInfo->Count;
                break;
            case "pic_photo_or_album":
                $content = "拍照或者相册:数量 ".$object->SendPicsInfo->Count;
                break;
            case "location_select":
                $content = "发送位置:标签 ".$object->SendLocationInfo->Label;
                break;
            default:
                $content = "receive a new event: ".$object->Event;
                break;
        }

        if(is_array($content)){
    
    
            if (isset($content[0]['PicUrl'])){
    
    
                $result = $this->transmitNews($object, $content);
            }else if (isset($content['MusicUrl'])){
    
    
                $result = $this->transmitMusic($object, $content);
            }
        }else{
    
    
            $result = $this->transmitText($object, $content);
        }
        return $result;
    }

    //接收文本消息
    private function receiveText($object)
    {
    
    
        $keyword = trim($object->Content);
        //多客服人工回复模式
        if (strstr($keyword, "请问在吗") || strstr($keyword, "在线客服")){
    
    
            $result = $this->transmitService($object);
            return $result;
        }

        //自动回复模式
        if (strstr($keyword, "文本")){
    
    
            $content = "这是个文本消息";
        }else if (strstr($keyword, "表情")){
    
    
            $content = "中国:".$this->bytes_to_emoji(0x1F1E8).$this->bytes_to_emoji(0x1F1F3)."\n仙人掌:".$this->bytes_to_emoji(0x1F335);
        }else if (strstr($keyword, "单图文")){
    
    
            $content = array();
            $content[] = array("Title"=>"单图文标题",  "Description"=>"单图文内容", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
        }else if (strstr($keyword, "图文") || strstr($keyword, "多图文")){
    
    
            $content = array();
            $content[] = array("Title"=>"多图文1标题", "Description"=>"", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
            $content[] = array("Title"=>"多图文2标题", "Description"=>"", "PicUrl"=>"http://d.hiphotos.bdimg.com/wisegame/pic/item/f3529822720e0cf3ac9f1ada0846f21fbe09aaa3.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
            $content[] = array("Title"=>"多图文3标题", "Description"=>"", "PicUrl"=>"http://g.hiphotos.bdimg.com/wisegame/pic/item/18cb0a46f21fbe090d338acc6a600c338644adfd.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
        }else if (strstr($keyword, "音乐")){
    
    
            $content = array();
            $content = array("Title"=>"最炫民族风", "Description"=>"歌手:凤凰传奇", "MusicUrl"=>"http://121.199.4.61/music/zxmzf.mp3", "HQMusicUrl"=>"http://121.199.4.61/music/zxmzf.mp3"); 
        }else{
    
    
            $content = date("Y-m-d H:i:s",time())."\nOpenID:".$object->FromUserName."\n技术支持 寻片网";
        }

        if(is_array($content)){
    
    
            if (isset($content[0])){
    
    
                $result = $this->transmitNews($object, $content);
            }else if (isset($content['MusicUrl'])){
    
    
                $result = $this->transmitMusic($object, $content);
            }
        }else{
    
    
            $result = $this->transmitText($object, $content);
        }
        return $result;
    }

    //接收图片消息
    private function receiveImage($object)
    {
    
    
        $content = array("MediaId"=>$object->MediaId);
        $result = $this->transmitImage($object, $content);
        return $result;
    }

    //接收位置消息
    private function receiveLocation($object)
    {
    
    
        $content = "你发送的是位置,经度为:".$object->Location_Y.";纬度为:".$object->Location_X.";缩放级别为:".$object->Scale.";位置为:".$object->Label;
        $result = $this->transmitText($object, $content);
        return $result;
    }

    //接收语音消息
    private function receiveVoice($object)
    {
    
    
        if (isset($object->Recognition) && !empty($object->Recognition)){
    
    
            $content = "你刚才说的是:".$object->Recognition;
            $result = $this->transmitText($object, $content);
        }else{
    
    
            $content = array("MediaId"=>$object->MediaId);
            $result = $this->transmitVoice($object, $content);
        }
        return $result;
    }

    //接收视频消息
    private function receiveVideo($object)
    {
    
    
        $content = array("MediaId"=>$object->MediaId, "ThumbMediaId"=>$object->ThumbMediaId, "Title"=>"", "Description"=>"");
        $result = $this->transmitVideo($object, $content);
        return $result;
    }

    //接收链接消息
    private function receiveLink($object)
    {
    
    
        $content = "你发送的是链接,标题为:".$object->Title.";内容为:".$object->Description.";链接地址为:".$object->Url;
        $result = $this->transmitText($object, $content);
        return $result;
    }

    //回复文本消息
    private function transmitText($object, $content)
    {
    
    
        if (!isset($content) || empty($content)){
    
    
            return "";
        }

        $xmlTpl = "<xml>
    <ToUserName><![CDATA[%s]]></ToUserName>
    <FromUserName><![CDATA[%s]]></FromUserName>
    <CreateTime>%s</CreateTime>
    <MsgType><![CDATA[text]]></MsgType>
    <Content><![CDATA[%s]]></Content>
</xml>";
        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), $content);

        return $result;
    }

    //回复图文消息
    private function transmitNews($object, $newsArray)
    {
    
    
        if(!is_array($newsArray)){
    
    
            return "";
        }
        $itemTpl = "        <item>
            <Title><![CDATA[%s]]></Title>
            <Description><![CDATA[%s]]></Description>
            <PicUrl><![CDATA[%s]]></PicUrl>
            <Url><![CDATA[%s]]></Url>
        </item>
";
        $item_str = "";
        foreach ($newsArray as $item){
    
    
            $item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']);
        }
        $xmlTpl = "<xml>
    <ToUserName><![CDATA[%s]]></ToUserName>
    <FromUserName><![CDATA[%s]]></FromUserName>
    <CreateTime>%s</CreateTime>
    <MsgType><![CDATA[news]]></MsgType>
    <ArticleCount>%s</ArticleCount>
    <Articles>
$item_str    </Articles>
</xml>";

        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), count($newsArray));
        return $result;
    }

    //回复音乐消息
    private function transmitMusic($object, $musicArray)
    {
    
    
        if(!is_array($musicArray)){
    
    
            return "";
        }
        $itemTpl = "<Music>
        <Title><![CDATA[%s]]></Title>
        <Description><![CDATA[%s]]></Description>
        <MusicUrl><![CDATA[%s]]></MusicUrl>
        <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
    </Music>";

        $item_str = sprintf($itemTpl, $musicArray['Title'], $musicArray['Description'], $musicArray['MusicUrl'], $musicArray['HQMusicUrl']);

        $xmlTpl = "<xml>
    <ToUserName><![CDATA[%s]]></ToUserName>
    <FromUserName><![CDATA[%s]]></FromUserName>
    <CreateTime>%s</CreateTime>
    <MsgType><![CDATA[music]]></MsgType>
    $item_str
</xml>";

        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());
        return $result;
    }

    //回复图片消息
    private function transmitImage($object, $imageArray)
    {
    
    
        $itemTpl = "<Image>
        <MediaId><![CDATA[%s]]></MediaId>
    </Image>";

        $item_str = sprintf($itemTpl, $imageArray['MediaId']);

        $xmlTpl = "<xml>
    <ToUserName><![CDATA[%s]]></ToUserName>
    <FromUserName><![CDATA[%s]]></FromUserName>
    <CreateTime>%s</CreateTime>
    <MsgType><![CDATA[image]]></MsgType>
    $item_str
</xml>";

        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());
        return $result;
    }

    //回复语音消息
    private function transmitVoice($object, $voiceArray)
    {
    
    
        $itemTpl = "<Voice>
        <MediaId><![CDATA[%s]]></MediaId>
    </Voice>";

        $item_str = sprintf($itemTpl, $voiceArray['MediaId']);
        $xmlTpl = "<xml>
    <ToUserName><![CDATA[%s]]></ToUserName>
    <FromUserName><![CDATA[%s]]></FromUserName>
    <CreateTime>%s</CreateTime>
    <MsgType><![CDATA[voice]]></MsgType>
    $item_str
</xml>";

        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());
        return $result;
    }

    //回复视频消息
    private function transmitVideo($object, $videoArray)
    {
    
    
        $itemTpl = "<Video>
        <MediaId><![CDATA[%s]]></MediaId>
        <ThumbMediaId><![CDATA[%s]]></ThumbMediaId>
        <Title><![CDATA[%s]]></Title>
        <Description><![CDATA[%s]]></Description>
    </Video>";

        $item_str = sprintf($itemTpl, $videoArray['MediaId'], $videoArray['ThumbMediaId'], $videoArray['Title'], $videoArray['Description']);

        $xmlTpl = "<xml>
    <ToUserName><![CDATA[%s]]></ToUserName>
    <FromUserName><![CDATA[%s]]></FromUserName>
    <CreateTime>%s</CreateTime>
    <MsgType><![CDATA[video]]></MsgType>
    $item_str
</xml>";

        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());
        return $result;
    }

    //回复多客服消息
    private function transmitService($object)
    {
    
    
        $xmlTpl = "<xml>
    <ToUserName><![CDATA[%s]]></ToUserName>
    <FromUserName><![CDATA[%s]]></FromUserName>
    <CreateTime>%s</CreateTime>
    <MsgType><![CDATA[transfer_customer_service]]></MsgType>
</xml>";
        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());
        return $result;
    }

    //回复第三方接口消息
    private function relayPart3($url, $rawData)
    {
    
    
        $headers = array("Content-Type: text/xml; charset=utf-8");
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $rawData);
        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }

    //字节转Emoji表情
    function bytes_to_emoji($cp)
    {
    
    
        if ($cp > 0x10000){
    
           # 4 bytes
            return chr(0xF0 | (($cp & 0x1C0000) >> 18)).chr(0x80 | (($cp & 0x3F000) >> 12)).chr(0x80 | (($cp & 0xFC0) >> 6)).chr(0x80 | ($cp & 0x3F));
        }else if ($cp > 0x800){
    
       # 3 bytes
            return chr(0xE0 | (($cp & 0xF000) >> 12)).chr(0x80 | (($cp & 0xFC0) >> 6)).chr(0x80 | ($cp & 0x3F));
        }else if ($cp > 0x80){
    
        # 2 bytes
            return chr(0xC0 | (($cp & 0x7C0) >> 6)).chr(0x80 | ($cp & 0x3F));
        }else{
    
                        # 1 byte
            return chr($cp);
        }
    }

    //日志记录
    private function logger($log_content)
    {
    
    
        if(isset($_SERVER['HTTP_APPNAME'])){
    
       //SAE
            sae_set_display_errors(false);
            sae_debug($log_content);
            sae_set_display_errors(true);
        }else if($_SERVER['REMOTE_ADDR'] != "127.0.0.1"){
    
     //LOCAL
            $max_size = 10000;
            $log_filename = "log.xml";
            if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){
    
    unlink($log_filename);}
            file_put_contents($log_filename, date('Y-m-d H:i:s')." ".$log_content."\r\n", FILE_APPEND);
        }
    }

	
	//查询配置
	private function SearchDB($keyword){
    
     
		//配置MySQL链接地址、用户名、密码默认为"k8","ng","hua1737"
		$con = mysql_connect("127.0.0.1:3306","h","hu7");								
		mysql_query("SET NAMES UTF8");
		mysql_query("set character_set_client=utf8"); 
		mysql_query("set character_set_results=utf8");
		//配置数据库名,具体参考帝国CMS配置文件,路径e/config/config.php,或前往数据库查看
		mysql_select_db("hug", $con);
		//配置数据库表前缀,具体参考帝国CMS配置文件,路径e/config/config.php,或前往数据库查看
		$dbtbpre = "phome_ecms_news_";
		//配置需要查询的数据表,默认为news表
		$dbtbname = "news";
		//配置SQL语句																	//按ID倒序排序;返回信息条数,默认从第0条开始到第15条
		$sql = "SELECT * FROM `phome_ecms_news` WHERE `title` like '%".$keyword."%' ORDER BY onclick DESC LIMIT 0 , 8";
		
		$result = mysql_query($sql);
		
		return($result);
    }
	private function Get_Item($title, $description, $picUrl, $url){
    
    
        if(!$description) $description = $title;
		
		return
        '
        <item>
            <Title><![CDATA['.$title.']]></Title>
            <Discription><![CDATA['.$description.']]></Discription>
            <PicUrl><![CDATA['.$picUrl.']]></PicUrl>
            <Url><![CDATA['.$url.']]></Url>
        </item>
        ';
		
        // return
        // '
        // <item>
            // <Title><![CDATA['.$title.']]></Title>
            // <Discription><![CDATA['.$description.']]></Discription>
            // <PicUrl><![CDATA[http://'.$_SERVER['HTTP_HOST'].$picUrl.']]></PicUrl>
            // <Url><![CDATA[http://'.$_SERVER['HTTP_HOST'].$url.']]></Url>
        // </item>
        // ';
    }
	//签名验证程序,官方加密、校验流程:将token,timestamp,nonce这三个参数进行字典序排序,然后将这三个参数字符串拼接成一个字符串进行shal加密,开发者获得加密后的字符串可以与signature对比,表示该请求来源于微信。  
    private function checkSignature()  
    {
    
      
        $signature = $_GET["signature"];//从用户端获取签名赋予变量signature  
        $timestamp = $_GET["timestamp"];//从用户端获取时间戳赋予变量timestamp  
        $nonce = $_GET["nonce"];    //从用户端获取随机数赋予变量nonce  
                  
        $token = TOKEN;//将常量token赋予变量token  
        $tmpArr = array($token, $timestamp, $nonce);//简历数组变量tmpArr  
        sort($tmpArr, SORT_STRING);//新建排序  
        $tmpStr = implode( $tmpArr );//字典排序  
        $tmpStr = sha1( $tmpStr );//shal加密  
        //tmpStr与signature值相同,返回true,否则返回false
        if( $tmpStr == $signature ){
    
      
            return true;  
        }else{
    
      
            return false;  
        }  
    }  
}
?>





Guess you like

Origin blog.csdn.net/ZhiMaoYiDeHuaiRen/article/details/116521508