base64 数据流文件就是 利用base64编码把图片数据翻译成标准ASCII字符。
//1. 获取前端传递的 base64 数据流文件
/**
idImg1格式:
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMD…J6c/Cvnd9TXK8x0...
**/
$idImg1 = $this->input->get_post('idImg1');
//2. 由于上传带有 url 的前缀,需要处理掉
$idImg1 = str_replace('url("data:image/jpeg;base64,', '', $idImg1);
$idImg1 = str_replace('")', '', $idImg1);
//3. 设置文件路径和文件前缀名称
$img1_path = dirname(__FILE__) . '/uploads/images/img_front.jpg';
//4. 创建将数据流文件写入我们创建的文件内容中
file_put_contents($img1_path, base64_decode($idImg1));
//5. 文件上传完成,继续后续操作
Data URL
即base64 数据流,在本地直接绘制图片,而不是从服务器加载,节省了HTTP连接,能起到加速网页的作用。
等同于
<img src="http://XXX/images/img_front.jpg"/>
trim()
过滤字符串,否则会改变字符串的内容。最后,附上 Data URL
生成方式:
$img_file = file_get_contents("http://XXX/images/img_front.jpg");
echo base64_encode($img_file);
SELECT * FROM 表名 WHERE 字段名 > DATE_SUB(NOW(), INTERVAL 60 MINUTE);
//或者
SELECT * FROM 表名 WHERE 字段名 > DATE_SUB(NOW(), INTERVAL 1 HOUR);
DATE_SUB
函数从日期 date
减去指定的时间间隔。
语法:
DATE_SUB(date,INTERVAL expr type)
date 参数是合法的日期表达式。expr 参数是时间间隔。
type 参数解析:
值(type) | 解析 |
---|---|
MICROSECOND | 微秒 |
SECOND | 秒 |
MINUTE | 分 |
HOUR | 时 |
DAY | 天 |
WEEK | 周 |
MONTH | 月 |
QUARTER | 季 ,三个月 |
YEAR | 年 |
SECOND_MICROSECOND | 秒和微秒,任意符号隔开 |
MINUTE_SECOND | 分和秒,任意符号隔开 |
HOUR_MINUTE | 时和分,任意符号隔开 |
DAY_HOUR | 天和时,任意符号隔开 |
YEAR_MONTH | 年和月,任意符号隔开 |
MINUTE_MICROSECOND | 分和微秒,任意符号隔开,无法正常执行,等于 SECOND_MICROSECOND |
HOUR_MICROSECOND | 时和微秒,任意符号隔开,无法正常执行,等于 SECOND_MICROSECOND |
DAY_MICROSECOND | 天和微秒,任意符号隔开,无法正常执行,等于 SECOND_MICROSECOND |
HOUR_SECOND | 时和秒,任意符号隔开,无法正常执行,等于MINUTE_SECOND |
DAY_SECOND | 天和秒,任意符号隔开,无法正常执行,等于 MINUTE_SECOND |
DAY_MINUTE | 天和分,任意符号隔开,无法正常执行,等于HOUR_MINUTE |
以上单个参数很简单能理解,看下面这个例子:
>SELECT DATE_SUB('2019-08-01 12:00:00',INTERVAL 1 SECOND) ;
>2019-08-01 11:59:59
主要看使用下划线连接的两个参数,先看个例子:
>SELECT DATE_SUB('2019-08-01 12:00:00',INTERVAL '1 1' YEAR_MONTH) ;
>2018-07-01 12:00:00
没错,两个参数是叠加生效的,就像上面的例子,减去了一年一个月,其他的效果相同。
不过这里有个bug,如表格中备注的,官方给出的有六种都无法正常执行,具体效果表格中有描述。验证的MYSQL版本是5.7.11,是否需要高版本支持有待验证。
PS:指定的修改时间段也可以是负值,负负得正,就相当于是增加时间啦~
-webkit-animation: ghostUpdown 0.7s infinite alternate;
@keyframes ghostUpdown {
from {
transform: scale(1);
}
to {
transform: scale(1.05);
}
}
@-webkit-keyframes ghostUpdown {
from {
transform: scale(1);
}
to {
transform: scale(1.05);
}
}
animation
是用于为页面创建动画效果的,需要和 @keyframes
一起使用,才可以创建动画。
浏览器前缀 -webkit
这个是由于浏览器兼容问题,chrome,safari,opera不支持 animation
,必须使用 webkit
前缀。
IE 10和Firefox(>= 16)支持没有前缀的 animation
,Firefox(< 16)使用的前缀为 -moz
。
具体的解析见文章 css动画-animation各个属性详解
transform
:应用于元素的2D或3D转换。这个属性允许你将元素旋转,缩放,移动,倾斜等。 scale
:定义 2D 缩放转换。具体属性说明见 CSS3 transform 属性。