linux下mysql 常见命令(笔记)
1、用户登录
mysql -u 用户(root) -p 密码(123456) -h localhost
2、显示数据库
show databses
3、选择数据库
use demo
4、导入数据库(SQL执行)
source mysql.sql
1、用户登录
mysql -u 用户(root) -p 密码(123456) -h localhost
2、显示数据库
show databses
3、选择数据库
use demo
4、导入数据库(SQL执行)
source mysql.sql
使用效果:用于打开swf等多媒体文件
开发微信过程中,发现拉取用户信息中,如果用户呢称含有表情emoji的符合,是无法用mysql的utf8编码存储的。目前可以使用utf8mb4来存储。虽然能存储,但展示也是一大问题,本人建议最好的解决方案是过滤掉:以下是从网上抄的代码:
/*
*过滤掉微信呢称的emoji表情
*/
public function filterEmoji($str){
$str = preg_replace_callback('/./u',function (array $match) {
return strlen($match[0]) >= 4 ? '' : $match[0];
},$str);
return $str;
}
完结撒花!
定时关机命令
shutdown -s -t 7200
说明:7200表示秒 自己换算更改 我这里是2小时后自动关机
注销关机命令:
shutdown -a
【win】+R->【CMD窗口】->输入以上命令即可
最近小鱼哥在做直播门户开发,要知道直播每个人都有自己的直播间,使用靓号可以进入自己的直播间,然用thinkphp开发,发现路由URL规则中 /字母或数字都会进入控制器或模块 用URL美化,也只能实现类似www.kinmor.com/i/888(i/:id=>show/index),要实现真正的a.com/123这样进入的话,还是有点小技巧的。下面粘贴本鱼的代码,用htacess来实现。
以下为.htacess代码
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
#PC学校规则
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([0-9]*)$ /Show/index/index/nid/$1
RewriteRule ^m_([0-9]*)$ /box/index/index/nid/$1
#全站规则
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
</IfModule>
前置步骤:
1、注册微信公众号
2、开发者配置----基本配置-----拿到APPID(开发者ID)和APPKEY(开发者密钥)
3、服务器配置
这里就是介绍【服务器配置】,在开始以前,先做下白名单设置:
【设置】---【基本设置】----【白名单】---添加你本地的公网IP即可,不懂移步这里
现在进入今天的正题:
如何进行服务器地址的有效验证,也就是人常说的TOKEN验证。
就官方而言,微信服务器在验证token的时候会发送GET请求到服务器的地址上(我的地址是www.kinmor.com/weixin/index/checkSignature[thinkphp3.2.3]),会请求带以下四个参数:
在验证的时候我做个小测试,下面是我接收到的参数
{"signature":"bd44ae804d379f63150a2dbb371137613f30f1c7","echostr":"1252117117333880755","timestamp":"1528768433","nonce":"902738055"}
signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串
官方的加密/校验流程如下:
下面是我的代码:
/**
* 验证签名
* @return bool
*/
public function checkSignature() {
/*{"signature":"bd44ae804d379f63150a2dbb371137613f30f1c7","echostr":"1252117117333880755","timestamp":"1528768433","nonce":"902738055"}
#$signature ='bd44ae804d379f63150a2dbb371137613f30f1c7';
#$timestamp ='1528768433';
#$nonce='902738055';*/
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$echostr = $_GET["echostr"];
$token = C('TOKEN');
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if($tmpStr == $signature&&$echostr){
echo $echostr;
exit;
}
}
/*$signature = isset($_GET["signature"])?$_GET["signature"]:'';
$signature = isset($_GET["msg_signature"])?$_GET["msg_signature"]:$signature; //如果存在加密验证则用加密验证段
$timestamp = isset($_GET["timestamp"])?$_GET["timestamp"]:'';
$nonce = isset($_GET["nonce"])?$_GET["nonce"]:'';
$echostr = isset($_GET["echostr"])?$_GET["echostr"]:'';
$token = $this->options['token'];
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if($tmpStr == $signature&&$echostr){
echo $echostr;
exit;
}*/
在上面的代码中,用到的配置是token,注意这里的token值一定要和微信公众号【服务器配置】--【token】的值保持一致。上面我为了更方便管理,将token进行了预定义。