auto update

dependabot/npm_and_yarn/ushio/www/session/lodash-4.17.15
iotcat 5 years ago
parent 80f4fa2b7d
commit 52bd0bc557
  1. 235
      yimian/.viminfo
  2. 50
      yimian/conf/nginx/eee.dog.conf
  3. 6
      yimian/www/shorturl/.db.key.php
  4. 527
      yimian/www/shorturl/functions.php
  5. 14
      yimian/www/shorturl/index.php

@ -14,17 +14,17 @@
$
# Command Line History (newest to oldest):
:q!
:wq
:Wq
:w
:q
:q!
:Q!
:q1
:q
:!
:Q
:!q
:s
:Wq
# Search String History (newest to oldest):
?/imgbed
@ -39,17 +39,11 @@ $
# Input Line History (newest to oldest):
# Registers:
""0 CHAR 0
/* obs get img */
function getImg($path, $time = 300){
return str_replace('yimian-image.obs.cn-east-2.myhuaweicloud.com:443','image.yimian.xyz',trim(exec("obs sign obs://yimian-image/". $path ." -e=". $time)));
}
"1 CHAR 0
"0 LINE 0
Header("HTTP/1.1 301 Moved Permanently");
""1 LINE 0
Header("HTTP/1.1 301 Moved Permanently");
"2 CHAR 0
function getMatchedKeys($str, $arr){
if(!is_array($str)){
@ -66,7 +60,7 @@ $
return $o;
}
}
"2 CHAR 0
"3 CHAR 0
elseif($type){
$arr = getImgsInfo($type);
@ -117,36 +111,41 @@ $
}while($R18 != true && $arr[6][$arr_keys[$index]] != "normal");
$path = $type. '/' .$arr[0][$arr_keys[$index]];
"3 LINE 0
"4 LINE 0
"5 LINE 0
if(isset($range) && $range > 0) $range = $range; else $range = 0;
"6 LINE 0
if($R18 != "true") $R18 = false; else $R18 = true;
if(isset($range) && $range > 0) $range = $range; else $range = 0;
"7 LINE 0
if($display != "true") $display = false; else $display = true;
if($R18 != "true") $R18 = false; else $R18 = true;
"8 LINE 0
if(!isset($path)) $path = null;
if($display != "true") $display = false; else $display = true;
"9 LINE 0
if(!isset($size)) $size = null;
if(!isset($path)) $path = null;
"- CHAR 0
# File marks:
'0 14 32 ~/conf/nginx/settlement.yimian.xyz.conf
'1 308 60 ~/www/settlement/index.html
'2 22 28 /home/ushio/www/img/usr/themes/photograph/index.php
'3 1 0 /home/ushio/www/img/usr/themes/photograph/index.
'4 1 0 /home/lib/php/anti-ddos.php
'5 1 0 /home/ushio/www/img/index.php
'6 1 0 /home/ushio/www/img/in
'7 38 0 /home/ushio/www/img/index.php
'8 32 0 /home/ushio/www/api/video/index.php
'9 291 3 /home/ushio/www/api/functions.php
'0 14 28 ~/www/shorturl/index.php
'1 3 44 ~/www/shorturl/index.php
'2 3 50 ~/www/shorturl/index.php
'3 6 21 ~/www/shorturl/.db.key.php
'4 2 33 ~/www/shorturl/functions.php
'5 14 32 ~/conf/nginx/settlement.yimian.xyz.conf
'6 308 60 ~/www/settlement/index.html
'7 22 28 /home/ushio/www/img/usr/themes/photograph/index.php
'8 1 0 /home/ushio/www/img/usr/themes/photograph/index.
'9 1 0 /home/lib/php/anti-ddos.php
# Jumplist (newest first):
-' 14 28 ~/www/shorturl/index.php
-' 3 0 ~/www/shorturl/index.php
-' 6 21 ~/www/shorturl/.db.key.php
-' 1 0 ~/www/shorturl/.db.key.php
-' 2 33 ~/www/shorturl/functions.php
-' 1 0 ~/www/shorturl/functions.php
-' 1 0 ~/www/shorturl/index.php
-' 14 32 ~/conf/nginx/settlement.yimian.xyz.conf
-' 1 0 ~/conf/nginx/settlement.yimian.xyz.conf
-' 308 60 ~/www/settlement/index.html
@ -237,18 +236,39 @@ $
-' 277 9 ~/www/settlement/index.html
-' 192 8 ~/www/settlement/api/index.php
-' 162 8 ~/www/settlement/api/index.php
-' 179 8 ~/www/settlement/api/index.php
-' 214 0 ~/www/settlement/api/index.php
-' 205 8 ~/www/settlement/api/index.php
-' 161 4 ~/www/settlement/api/index.php
-' 4 423 ~/www/settlement/imgbed/js/jquery.imageuploader.js
-' 9 452 ~/www/settlement/imgbed/js/jquery.imageuploader.js
-' 22 4 ~/www/settlement/imgbed/js/jquery.imageuploader.js
-' 16 12 ~/www/settlement/imgbed/js/jquery.imageuploader.js
-' 69 8 ~/www/settlement/imgbed/index.html
# History of marks within files (newest to oldest):
> ~/www/shorturl/index.php
" 14 28
^ 14 29
. 14 28
+ 2 0
+ 3 50
+ 3 50
+ 3 44
+ 9 28
+ 10 0
+ 7 0
+ 6 0
+ 10 41
+ 13 0
+ 11 9
+ 14 28
> ~/www/shorturl/.db.key.php
" 6 21
^ 6 22
. 6 20
+ 4 22
+ 6 20
> ~/www/shorturl/functions.php
" 2 33
^ 2 34
. 2 33
+ 2 33
> ~/conf/nginx/settlement.yimian.xyz.conf
" 14 32
^ 14 33
@ -588,136 +608,3 @@ $
+ 10 4
+ 4 376
+ 4 0
> ~/www/settlement/func/functions.php
" 46 0
^ 46 1
. 73 93
+ 3 37
+ 9 2
+ 4 0
+ 61 95
+ 71 56
+ 72 86
+ 73 93
> ~/www/settlement/api/getWeekData.php
" 51 64
^ 51 65
. 51 64
+ 23 161
+ 35 0
+ 56 23
+ 57 18
+ 58 17
+ 68 0
+ 21 20
+ 12 0
+ 10 39
+ 11 0
+ 12 36
+ 14 35
+ 15 15
+ 56 1
+ 57 1
+ 58 1
+ 59 1
+ 15 11
+ 17 39
+ 18 33
+ 19 32
+ 18 38
+ 19 7
+ 21 40
+ 45 0
+ 68 8
+ 29 32
+ 7 3
+ 29 34
+ 7 10
+ 29 42
+ 29 4
+ 29 37
+ 29 73
+ 68 0
+ 56 0
+ 57 0
+ 58 0
+ 59 0
+ 58 23
+ 30 0
+ 31 0
+ 28 4
+ 26 8
+ 28 10
+ 23 193
+ 28 22
+ 31 36
+ 45 42
+ 46 4
+ 45 9
+ 46 18
+ 26 0
+ 30 17
+ 31 17
+ 46 67
+ 45 34
+ 46 68
+ 50 47
+ 51 3
+ 50 37
+ 51 32
+ 52 39
+ 47 0
+ 47 0
+ 50 34
+ 46 33
+ 45 34
+ 47 25
+ 27 0
+ 26 6
+ 54 52
+ 54 61
+ 54 9
+ 55 0
+ 36 6
+ 37 0
+ 36 40
+ 38 37
+ 39 7
+ 62 35
+ 63 47
+ 63 55
+ 64 21
+ 63 10
+ 64 64
+ 66 0
+ 64 36
+ 65 0
+ 66 34
+ 63 9
+ 64 44
+ 66 25
+ 39 37
+ 39 41
+ 39 7
+ 39 30
+ 40 10
+ 41 13
+ 51 64
> ~/www/settlement/imgbed/index.html
" 69 8
^ 14 37
. 14 36
+ 7 24
+ 18 50
+ 22 90
+ 35 60
+ 39 75
+ 47 123
+ 50 88
+ 49 27
+ 52 198
+ 54 35
+ 14 36

@ -0,0 +1,50 @@
server {
listen 80;
#listen [::]:80;
server_name eee.dog;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
#listen 80;
#listen [::]:80;
listen 443 ssl;
server_name eee.dog;
root /home/yimian/www/blog;
index index.php index.html;
ssl_certificate /etc/letsencrypt/live/www.eee.dog/fullchain.pem; #2
ssl_certificate_key /etc/letsencrypt/live/www.eee.dog/privkey.pem; #3
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#error_page 404 = /404.php;
rewrite ^(.*)$ https://www.$host$1 permanent;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
include /home/ushio/conf/nginx/default.d/*.conf;
if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; }
if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; }
if (!-f $request_filename){ rewrite (.*) /index.php; }
if (!-e $request_filename) { rewrite ^(.*)$ /index.php$1 last; }
location /s/ {
rewrite ^(.*)$ /s/index.php?s=$1 last;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

@ -0,0 +1,6 @@
<?php
$g_db_serverName="192.168.0.90";
$g_db_usrName="shorturl";
$g_db_psswd="F3sedk^ds%edl9sjsa";
$g_db_dbName="shorturl";

@ -0,0 +1,527 @@
<?php
require '/home/yimian/www/shorturl/.db.key.php';
require '/home/yimian/www/settlement/.config.php';
include '/home/ushio/conf/dbKeys/log.db.key.php';
/**database connection**/
//connect to database
function db__connect($servername="",$username="",$password="",$dbname="")
{//echo $GLOBALS['g_db_serverName'];
/* 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_log_serverName'];
$username = $GLOBALS['g_db_log_usrName'];
$password = $GLOBALS['g_db_log_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="",$sql_plus = "")
{
$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 $sql_plus";
elseif($clmnName2=="") $sql = "SELECT * FROM $table where $clmnName='$value' $sql_plus";
else $sql = "SELECT * FROM $table where $clmnName='$value' AND $clmnName2='$value2' $sql_plus";
$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;$i<count($key);$i++)
{
$sql.="$key[$i]";
if($i!=count($key)-1) $sql.=", ";
}
$sql.=") VALUES (";
for($i=0;$i<count($key);$i++)
{
$tmp_key=$key[$i];
$content[$tmp_key]=db__antisql($content[$tmp_key]);
$sql.="'$content[$tmp_key]'";
if($i!=count($key)-1) $sql.=", ";
}
$sql.=")";
if (!($conn->query($sql) === TRUE)) echo "SQL Insert Error: " . $sql . "<br>" . $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;$i<count($key);$i++)
{
$tmp_key=$key[$i];
$content[$tmp_key]=db__antisql($content[$tmp_key]);
$sql.="$key[$i]='$content[$tmp_key]'";
if($i!=count($key)-1) $sql.=", ";
}
$key=array_keys($index);
$key=db__antisql($key);
$sql.=" WHERE ";
for($i=0;$i<count($key);$i++)
{
$tmp_key=$key[$i];
$index[$tmp_key]=db__antisql($index[$tmp_key]);
$sql.="$tmp_key='$index[$tmp_key]'";
if($i!=count($key)-1) $sql.=" AND ";
}
if (!($conn->query($sql) === TRUE)) echo "SQL Insert Error: " . $sql . "<br>" . $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 = "", $cnt = null){
if(!isset($cnt)) $cnt = db__connect("log");
if($index != "") db__pushData($cnt, $table, $val, $index);
else db__pushData($cnt, $table, $val);
}
/** 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];
}
/*****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;
}
/* get IP */
function get_ip(){
return getIp();
}
function getIp()
{
if (isset($_SERVER)) {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
foreach ($arr as $ip) {
$ip = trim($ip);
if ($ip != 'unknown') {
$realip = $ip;
break;
}
}
} else if (isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else if (isset($_SERVER['REMOTE_ADDR'])) {
$realip = $_SERVER['REMOTE_ADDR'];
} else {
$realip = '0.0.0.0';
}
} else if (getenv('HTTP_X_FORWARDED_FOR')) {
$realip = getenv('HTTP_X_FORWARDED_FOR');
} else if (getenv('HTTP_CLIENT_IP')) {
$realip = getenv('HTTP_CLIENT_IP');
} else {
$realip = getenv('REMOTE_ADDR');
}
preg_match('/[\\d\\.]{7,15}/', $realip, $onlineip);
$realip = (!empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0');
return $realip;
}
/* obs get img */
function getImg($path, $time = 300){
return str_replace('yimian-image.obs.cn-east-2.myhuaweicloud.com:443','image.yimian.xyz',trim(exec("obs sign obs://yimian-image/". $path ." -e=". $time)));
}
function getImgsInfo($type){
$arr_os = array();
$arr = array();
ini_set("pcre.backtrack_limit" , -1); ini_set("pcre.recursion_limit" , -1); ini_set("memory_limit" , "1024M");
exec('obs ls obs://yimian-image/'.$type.' -limit=-1', $arr_os);
//echo count($arr_os);
$str = implode ($arr_os);
preg_match_all('/img_(\S*?)_(\d{2,4})x(\d{2,4})_(\S*?)_(\S*?)_(\S*?).(jpe?g|png|gif|svg)\b/', $str, $arr);
return $arr;
}
/*****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<br/><br/>更多信息请咨询<a href = 'https://iotcat.me'>IoTcat</a>期待你的回应啦~";
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);
}
//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));
// 返回结果
//echo $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);
}

@ -0,0 +1,14 @@
<?php
include '/home/yimian/www/shorturl/functions.php';
Header("HTTP/1.1 301 Moved Permanently");
if(!isset($_REQUEST['s'])) {
Header("Location: https://www.eee.dog/");
die();
}
$keyword = $_REQUEST['keyword'];
Loading…
Cancel
Save