"; echo " "; echo " ".$title." "; } //jquery install function js__jquery() { if(!$GLOBALS['jquery']) { echo " "; $GLOBALS['jquery']=1; } } function js__device() { echo " "; } function css__cleverLogin() { echo " "; } function css__easyVer() { echo " "; } //mark the end of the html header function yimian__headerEnd() { js__jquery(); echo " "; } function js__easyVer() { echo " "; } function js__cleverLogin() { echo " "; js__easyVer(); } function yimian__heartbeat() { echo " "; } function yimian__simpleFooter($bodyEnd=0) { if(!$bodyEnd) echo " "; yimian__heartbeat(); echo " "; } //print a html footer function yimian__footer($wordColor="#C7C7C7",$backgroundColor="#2B2B2B",$urlColor="#87CEEB") { echo " "; yimian__heartbeat(); echo " "; } //set fp cookie function yimian__setFp(){ echo " "; die(); } // user login function db__getUsrInfo($fp){ $conn = db__connect(); $res = db__getData($conn, "fp", "fp", $fp); $usr = db__getData($conn, "user", "tel", $res[0]['usr']); return $usr[0]; } /**added functions**/ //get millis time stamp function millis() { list($msec, $sec) = explode(' ', microtime()); return $msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000); } /**database connection**/ //connect to database function db__connect($servername="",$username="",$password="",$dbname="") { /* reset */ if($servername=="") $servername=$GLOBALS['g_db_serverName']; if($username=="") $username=$GLOBALS['g_db_usrName']; if($password=="") $password=$GLOBALS['g_db_psswd']; if($dbname=="") $dbname=$GLOBALS['g_db_dbName']; if($servername == "log"){ $servername = $GLOBALS['g_db_log_serverName']; $username = $GLOBALS['g_db_log_usrName']; $password = $GLOBALS['g_db_log_psswd']; $dbname = $GLOBALS['g_db_log_dbName']; }elseif($servername == "yulu"){ $servername = $GLOBALS['g_db_serverName']; $username = $GLOBALS['g_db_usrName']; $password = $GLOBALS['g_db_psswd']; $dbname = "yulu"; } $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Mysql Connect Failed: " . $conn->connect_error); } return ($conn); } //get table row number::(data_cnnct var,table name) ::(row number) function db__rowNum($conn,$table,$clmnName="",$value="",$clmnName2="",$value2="") { $table=db__antisql($table); $clmnName=db__antisql($clmnName); $value=db__antisql($value); $clmnName2=db__antisql($clmnName2); $value2=db__antisql($value2); if($clmnName=="") $sql = "SELECT COUNT(*) FROM $table"; elseif($clmnName2=="") $sql = "SELECT COUNT(*) FROM $table where $clmnName='$value'"; else $sql = "SELECT COUNT(*) FROM $table where $clmnName='$value' AND $clmnName2='$value2'"; $row_count = $conn->query($sql); list($row_num) = $row_count->fetch_row(); return ($row_num); } //get row data from database::(data_cnnct var, table name,column name, column value)::(row info) function db__getData($conn,$table,$clmnName="",$value="",$clmnName2="",$value2="") { $table=db__antisql($table); $clmnName=db__antisql($clmnName); $value=db__antisql($value); $clmnName2=db__antisql($clmnName2); $value2=db__antisql($value2); if($clmnName=="") $sql = "SELECT * FROM $table"; elseif($clmnName2=="") $sql = "SELECT * FROM $table where $clmnName='$value'"; else $sql = "SELECT * FROM $table where $clmnName='$value' AND $clmnName2='$value2'"; $result = $conn->query($sql); //no data if ($result->num_rows > 0) {}else{return 404;} $i=0; $arr=array(); while($row = $result->fetch_assoc()) { $arr[$i++]=$row; } return ($arr); } //fnct for insert a row to database function db__insertData($conn,$table,$content) { $table=db__antisql($table); $key=array_keys($content); $key=db__antisql($key); $sql="insert INTO $table ("; for($i=0;$iquery($sql) === TRUE)) echo "SQL Insert Error: " . $sql . "
" . $conn->error; } //fnct for update a row to database without check function db__updateData($conn,$table,$content,$index) { $key=array_keys($content); $key=db__antisql($key); $sql="UPDATE $table SET "; for($i=0;$iquery($sql) === TRUE)) echo "SQL Insert Error: " . $sql . "
" . $conn->error; } //push row data from database::(data_cnnct var, table name,column name, column value)::(row info) function db__pushData($conn,$table,$content,$index="",$is_force=1) { if($index) { $index_keys=array_keys($index); if(count($index_keys)==1) $result=db__rowNum($conn,$table,$index_keys[0],$index[$index_keys[0]]); elseif(count($index_keys)==2) $result=db__rowNum($conn,$table,$index_keys[0],$index[$index_keys[0]],$index_keys[1],$index[$index_keys[1]]); else return -1; if($result>0) db__updateData($conn,$table,$content,$index); else if($is_force) db__insertData($conn,$table,$content); } else db__insertData($conn,$table,$content); } function db__delData($conn, $table, $clmnName, $value) { $value=db__antisql($value); $clmnName=db__antisql($clmnName); $sql = "DELETE FROM $table WHERE $clmnName = '$value'"; $conn->query($sql); } //anti sql function db__antisql($str) { return(str_ireplace("'","",$str)); } /*****log******/ function yimian__log($table, $val, $index = ""){ if($index != "") db__pushData(db__connect("log"), $table, $val, $index); else db__pushData(db__connect("log"), $table, $val); } /*****curl*****/ function curl__post($url = '', $param) { if(empty($url)) { return false; } $o = ""; foreach ($param as $k => $v) { $o .= "$k=".urlencode($v)."&" ; } $postUrl = $url; $curlPost = substr($o,0,-1); $ch = curl_init();//初始化curl curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页 curl_setopt($ch, CURLOPT_HEADER, 0);//设置header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_POST, 1);//post提交方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); $data = curl_exec($ch);//运行curl curl_close($ch); return $data; } /***tools***/ //fnct of get usr ip::()::(ip) function get_ip() { if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) { $ip = getenv("HTTP_CLIENT_IP"); } else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) { $ip = getenv("HTTP_X_FORWARDED_FOR"); } else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) { $ip = getenv("REMOTE_ADDR"); } else if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) { $ip = $_SERVER['REMOTE_ADDR']; } else { $ip = "unknown"; } return ($ip); } /** get from address **/ function get_from(){ if($_SERVER['HTTP_REFERER']) return $_SERVER['HTTP_REFERER']; elseif($_REQUEST['from']) return $_REQUEST['from']; } function get_from_domain(){ $str = str_replace("http://","",get_from()); $str = str_replace("https://","",$str); $strdomain = explode("/",$str); return $strdomain[0]; } /*****gugu*****/ function yimian__gugu($body){ $body = iconv("UTF-8","gbk//TRANSLIT",$body); $url = "http://open.memobird.cn/home/printpaper"; return curl__post($url, array("ak" => $GLOBALS['ggj_ak'], "userID" => $GLOBALS['ggj_userID'], "memobirdID" => $GLOBALS['ggj_memobirdID'], "printcontent" => "T:".base64_encode($body)."", "timestamp" => "".time()."")); } function gugu__send($ak, $userID, $memobirdID, $body){ $body = iconv("UTF-8","gbk//TRANSLIT",$body); $url = "http://open.memobird.cn/home/printpaper"; return curl__post($url, array("ak" => $ak, "userID" => $userID, "memobirdID" => $memobirdID, "printcontent" => "T:".base64_encode($body)."", "timestamp" => "".time()."")); } /** function for mail **/ function yimian__mail($to, $subject, $body, $from){ if($from == "") $from = "IoTcat 呓喵酱"; if($body == "") $body = "额(⊙﹏⊙) 未找到指定的邮件内容耶( •̀ ω •́ )y

更多信息请咨询IoTcat期待你的回应啦~"; if($subject == "") $subject = "来自IoTcat的一声问候~"; $data = array( 'fromName' => $from, // 发件人名称 'from' => "admin@iotcat.xyz", // 发件地址 'to' => $to, // 收件地址 'replyTo' => "i@iotcat.me", // 回信地址 'subject' => $subject, 'html' => $body ); // 当前请求区域 // 杭州 // API地址 $data['api'] = 'https://dm.aliyuncs.com/'; // API版本号 $data['version'] = '2015-11-23'; // 机房信息 $data['region'] = 'cn-hangzhou'; // AccessKeyId $data['accessid'] = $GLOBALS['aym_AccessKey']; // AccessKeySecret $data['accesssecret'] = $GLOBALS['aym_SecretKey']; // 是否成功 return aliyun($data); } /**functions for aplayer**/ //put this function to where you want the aplayer to dispaly function aplayer__element() { echo "
"; } //this should put at the near the need of a body, //the js object name is ap. function aplayer__setup() { echo " "; echo ""; } //this should put at the near the need of a body, //the js object name is ap. function aplayer__setup_mini() { echo " "; echo ""; } //the should put behind the setup function function aplayer__add($name="",$artist="unknown",$url="",$coverurl="",$lrcurl="",$theme="#ebd0c2") { echo ""; } //play a netease playlist function aplayer__netease($playlistid="2012006204",$loadStart=0,$numLimit=10,$theme="#ebd0c2") { if(!$GLOBALS['jquery']) js__jquery(); echo ""; } /**functions for dplayer**/ //put this function to where you want the dplayer to dispaly function dplayer__element() { echo "
"; } //this should put at the near the need of a body, //the js object name is dp. function dplayer__setup() { echo " "; echo " "; echo " "; echo ""; } //this should put at the near the need of a body, //the js object name is dp. function dplayer__setup_once($id) { echo " "; echo " "; echo " "; echo ""; } //this should put behind the setup function function dplayer__add($id="234") { echo ""; } /****API******/ //fnct for dogecloud API function api__dogecloud($platform,$vcode,$ip,$AccessKey,$SecretKey){ $url="https://api.dogecloud.com/video/streams.json?platform=$platform&vcode=$vcode&ip=$ip"; $str="/video/streams.json?platform=$platform&vcode=$vcode&ip=$ip"."\n"; $str = hash_hmac("sha1", $str, $SecretKey); $headerArray =array("Host:api.dogecloud.com","Authorization: TOKEN ".$AccessKey.":".$str); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, TRUE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_HTTPHEADER,$headerArray); $output = curl_exec($ch); if($errno = curl_errno($ch)) { $error_message = curl_strerror($errno); echo "cURL error ({$errno}):\n {$error_message}"; } curl_close($ch); return $output; } /****Yimian Video*******/ function video__bodyUp() { if(!isset($_REQUEST['_pjax'])) { yimian__header("Yimian Video","video,Yimian","This is the page for showing video class."); echo " "; echo " "; yimian__headerEnd(); echo file_get_contents("https://video.yimian.xyz/body_up.html"); } } function video__bodyDown() { if(!isset($_REQUEST['_pjax'])) { echo file_get_contents("https://video.yimian.xyz/body_down.html"); yimian__simpleFooter(); } } /*****private functions *****/ //mail alliyun api function aliyun($param) { // 重新组合为阿里云所使用的参数 $data = array( 'Action' => 'SingleSendMail', // 操作接口名 'AccountName' => $param['from'], // 发件地址 'ReplyToAddress' => "true", // 回信地址 'AddressType' => 1, // 地址类型 'ToAddress' => $param['to'], // 收件地址 'FromAlias' => $param['fromName'], // 发件人名称 'Subject' => $param['subject'], // 邮件标题 'HtmlBody' => $param['html'], // 邮件内容 'Format' => 'JSON', // 返回JSON 'Version' => $param['version'], // API版本号 'AccessKeyId' => $param['accessid'], // Access Key ID 'SignatureMethod' => 'HMAC-SHA1', // 签名方式 'Timestamp' => gmdate('Y-m-d\TH:i:s\Z'), // 请求时间 'SignatureVersion' => '1.0', // 签名算法版本 'SignatureNonce' => md5(time()), // 唯一随机数 'RegionId' => $param['region'] // 机房信息 ); // 请求签名 $data['Signature'] = sign($data, $param['accesssecret']); // 初始化Curl $ch = curl_init(); // 设置为POST请求 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); // 请求地址 curl_setopt($ch, CURLOPT_URL, $param['api']); // 返回数据 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // 提交参数 curl_setopt($ch, CURLOPT_POSTFIELDS, getPostHttpBody($data)); // 关闭ssl验证 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 执行请求 $result = curl_exec($ch); // 获取错误代码 $errno = curl_errno($ch); // 获取错误信息 $error = curl_error($ch); // 获取返回状态码 $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // 关闭请求 curl_close($ch); // 成功标识 $flag = TRUE; // 如果开启了Debug if (1) { // 记录时间 $log = '[Aliyun] ' . date('Y-m-d H:i:s') . ': ' . PHP_EOL; // 如果失败 if ( $errno ) { // 设置失败 $flag = FALSE; $log .= '邮件发送失败, 错误代码:' . $errno . ',错误提示: ' . $error . PHP_EOL; } // 如果失败 if ( 400 <= $httpCode ) { // 设置失败 $flag = FALSE; // 尝试转换json if ( $json = json_decode($result) ) { $log .= '邮件发送失败,错误代码:' . $json->Code . ',错误提示:' . $json->Message . PHP_EOL; } else { $log .= '邮件发送失败, 请求返回HTTP Code:' . $httpCode . PHP_EOL; } } // 记录返回值 $log .= '邮件发送返回数据:' . serialize($result) . PHP_EOL; // 写入文件 } yimian__log("log_mail",array("timestamp" => date('Y-m-d H:i:s', time()), "to_" => $param['to'], "from_" => $param['fromName'], "subject" => $param['subject'], "body" => $param['html'], "success" => (($flag)?1:0), "return_" => $log)); // 返回结果 return $flag; } /** * 阿里云签名 * * @static * @access private * * @param array $param 签名参数 * @param string $accesssecret 秘钥 * * @return string */ function sign($param, $accesssecret) { // 参数排序 ksort($param); // 组合基础 $stringToSign = 'POST&' . percentEncode('/') . '&'; // 临时变量 $tmp = ''; // 循环参数列表 foreach ( $param as $k => $v ) { // 组合参数 $tmp .= '&' . percentEncode($k) . '=' . percentEncode($v); } // 去除最后一个& $tmp = trim($tmp, '&'); // 组合签名参数 $stringToSign = $stringToSign . percentEncode($tmp); // 数据签名 $signature = base64_encode(hash_hmac('sha1', $stringToSign, $accesssecret . '&', TRUE)); // 返回签名 return $signature; } /** * 阿里云签名编码转换 * * @static * @access private * * @param string $val 要转换的编码 * * @return string|string[]|null */ function percentEncode($val) { // URL编码 $res = urlencode($val); // 加号转换为%20 $res = preg_replace('/\+/', '%20', $res); // 星号转换为%2A $res = preg_replace('/\*/', '%2A', $res); // %7E转换为~ $res = preg_replace('/%7E/', '~', $res); return $res; } /** * 阿里云请求参数组合 * * @static * @access private * * @param array $param 发送参数 * * @return bool|string */ function getPostHttpBody($param) { // 空字符串 $str = ""; // 循环参数 foreach ( $param as $k => $v ) { // 组合参数 $str .= $k . '=' . urlencode($v) . '&'; } // 去除第一个& return substr($str, 0, -1); }