1. 역사 속 오늘
역사의 긴 강을 되돌아보면 역사는 삶의 거울이며, 역사를 거울로 삼아 우리는 흥망성쇠를 알 수 있습니다. 역사 속의 매일매일은 혼합된 축복입니다. 역사상 오늘 일어난 사건을 이해하는 것은 과거로부터 교훈을 얻는 데 도움이 될 수 있으며 역사는 잊혀질 수 없습니다. 여기에서 매일의 역사적인 이야기를 읽을 수 있고, 매일 어떤 주요 사건이 일어났는지, 역사 속에서 누가 태어나고 죽었는지, 매일 어떤 기념일과 축제를 기념하는지 등을 여기에서 쉽게 찾아볼 수 있습니다!
달력은 우리 삶에 있어서 간단하지만 중요한 도구입니다. 다양한 연도의 달력을 열어보면 새해 첫날과 같이 매년 같은 날을 경험하게 됩니다. 혹은 크리스마스, 매일 밖에 나갈 때처럼 우리는 늘 문앞을 지나갑니다. 이 단순한 날, 역사상 놀라운 일들이 많이 일어났고, 심지어 세계의 역사를 바꾸는 일들도 일어났습니다. 이러한 역사적 사건의 시기와 의미는 역사책에 확고하게 기록되어 있습니다. 어쩌면 중요한 역사적 사건의 날짜가 자신이 태어난 날이라는 것을 알게 될 수도 있습니다. 운이 좋다면, 당신의 생일이 중요한 휴일과 일치할 수도 있습니다. 그래서 독자들이 자신이 태어난 날을 자랑스러워하고 영감을 얻을 수 있도록 독자들의 생일이나 관심 있는 날에 역사에서 어떤 중요한 일이 일어났는지 알려드리기 위해 이 독서백과사전을 날짜별로 정리했습니다. 독자 여러분의 이상을 위해 열심히 노력해주세요
2. 자료 출처
다음은 1년에 366년 16일입니다. (윤년의 경우 2월 29일 포함) 해당 날짜를 클릭하시면 과거 해당 날짜의 기록을 보실 수 있습니다.
1月12345678910111213141516171819202122232425262728293031 | 2月1234567891011121314151617181920212223242526272829 | 3月12345678910111213141516171819202122232425262728293031 |
4月123456789101112131415161718192021222324252627282930 | 5月12345678910111213141516171819202122232425262728293031 | 6月123456789101112131415161718192021222324252627282930 |
7月12345678910111213141516171819202122232425262728293031 | 8月12345678910111213141516171819202122232425262728293031 | 9月123456789101112131415161718192021222324252627282930 |
10月12345678910111213141516171819202122232425262728293031 | 11月123456789101112131415161718192021222324252627282930 | 12月12345678910111213141516171819202122232425262728293031 |
3. 미리보기
구현 코드:
<?php define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); if (!isset($_GET['echostr'])) { $wechatObj->responseMsg(); }else{ $wechatObj->valid(); } class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; if($this->checkSignature()){ echo $echoStr; 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; } } public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $RX_TYPE = trim($postObj->MsgType); switch ($RX_TYPE) { case "text": $resultStr = $this->receiveText($postObj); break; case "event": $resultStr = $this->receiveEvent($postObj); break; default: $resultStr = ""; break; } echo $resultStr; }else { echo ""; exit; } } private function receiveText($object) { $keyword = trim($object->Content); $url = "http://api100.duapp.com/history/?appkey=trialuser"; $output = file_get_contents($url); $contentStr = json_decode($output, true); if (is_array($contentStr)){ $resultStr = $this->transmitNews($object, $contentStr); }else{ $resultStr = $this->transmitText($object, $contentStr); } return $resultStr; } private function receiveEvent($object) { $contentStr = ""; switch ($object->Event) { case "subscribe": $contentStr = "欢迎关注方倍工作室"; break; default: break; } $resultStr = $this->transmitText($object, $contentStr); return $resultStr; } private function transmitText($object, $content) { $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[%s]]></Content> </xml>"; $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content); return $resultStr; } private function transmitNews($object, $arr_item) { if(!is_array($arr_item)) return; $itemTpl = " <item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item> "; $item_str = ""; foreach ($arr_item as $item) $item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']); $newsTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[news]]></MsgType> <Content><![CDATA[]]></Content> <ArticleCount>%s</ArticleCount> <Articles> $item_str</Articles> </xml>"; $resultStr = sprintf($newsTpl, $object->FromUserName, $object->ToUserName, time(), count($arr_item)); return $resultStr; } } ?>