happyhack

drinke8


  • Home

  • About

  • Tags

  • Categories

  • Archives

  • Sitemap

PHP 对二维数组中某个键值排序

Posted on 2018-03-21 | Edited on 2018-08-10 | In 小记 |

使用 usort()对一个二维数组中的某一个键值进行排序.文档

Read more »

Mysql 字段查询去空格

Posted on 2018-03-21 | Edited on 2018-09-12 | In Technology |

一篇文章标题有时候会有空格存入数据库,在搜索的时候需要对空格进行过滤,
使用 mysqlTRIM()和REPLACE()函数对字符串处理。

1
SELECT title FROM article WHERE TRIM(REPLACE(`title`,' ','')) = ?

首尾去空格可以在后端代码中存储过程实现.

多字段搜索 CONCAT

CONCAT(str1,str2,…)

返回由全体参数合并在一起而得到的字符串,只要有一个参数为NULL那就返回NULL

定时命令 crontab

Posted on 2018-03-21 | Edited on 2018-08-10 | In 小记 |

crontab命令小记

使用crontab命令时,最好填写绝对路径,命令和文件都最好写绝对路径.
否则很容易出现command not found、file not found 😂

man crontab

让我们来使用男人这个命令查看下crontab.呀!都是英文!不喜!

Read more »

echarts 个性化图表颜色

Posted on 2018-03-21 | Edited on 2018-08-10 | In 小记 |

echarts自定义图形颜色

使用echarts图表自定义图表颜色(图形颜色),依据文档中找到series这个配置项中有一个属性itemStyle.链接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
series: [
{
name: '订单数',
type: 'bar',
//自定义图形颜色
itemStyle:{
normal:{
color:'#4ad2ff'
}
},
data: [
{{ $orders_4 }},
{{ $orders_3 }},
{{ $orders_2 }},
{{ $last_orders }},
{{ $orders_now }},
]
}
]

Laravel前端模板中渲染X轴注意不能直接赋值,需要加双引号””.

1
2
3
4
5
6
7
8
9
xAxis: {
data: [
"{{ $month_4 }}",
"{{ $month_3 }}",
"{{ $month_2 }}",
"{{ $month_1 }}",
"{{ $current_month }}",
]
},

Vue.js 组件使用小记

Posted on 2018-03-16 | Edited on 2018-08-10 | In 小记 |

VeeValidate表单验证组件Ajax成功后消除验证错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
methods:{
clear(){
let that = this;
new Promise(function (resolve, reject) {
resolve('Reset Form!');
that.clearForm();
}).then(() => {
that.$validator.reset();
});
},
clearForm(){
//do anything...
}
}

Laravel having与paginate使用细则

Posted on 2018-03-16 | Edited on 2018-09-12 | In Technology |

Laravel提供的分页函数paginate无法与having一起使用会出现问题!在GitHub中可以找到关于此issue的讨论

having是对查出来的数据做筛选,paginate方法在获取总数(total)的时候无法对having查出来做统计。
会出现Column not found: 1054 Unknown column 'distance' in 'having clause'

目前想到解决办法只能原生分页的方式

  • 查询总条数
  • 计算每页多少条数据
  • 对查询使用limit分页
  • 返回对应数据

在解决这一问题中,使用过一个偏方,使用数组分页…

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
* 数组分页
* @param $arr
* @param int $size
* @param int $page
* @return mixed
*/
private function pageArray ($arr, $size = 10, $page = 1)
{
$new = array_chunk($arr, $size);

return $new[$page - 1];
}

不过这个由后端对数据处理分页数据量大了之后性能很不好,每次翻页都需要从DB中查询所有数据在使用
array_chunk()进行分组.不建议使用.

Mysql MariaDB 的JSON字段处理

Posted on 2018-02-08 | Edited on 2018-09-12 | In Technology |

在Mysql中存储具有一些格式的数据的时候使用JSON格式存储会很方便,Mysql 5.7.8 开始支持存储原生JOSN格式的数据,MariaDB 10.0.1版本优化了JOSN格式的处理。

两者还是有区别的,在此记录下如何对JSON字段的CURD。

创建JSON格式字段

创建JOSN字段不能设置长度,和默认值,可以是NULL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
--MYSQL
CREATE TABLE happyhack(
`id` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
`area` JSON,
`tags` JSON
);
--Mariadb
CREATE TABLE happyhack(
`area` BLOB
);

MariaDB [test]> DESC happyhack;
--------------
DESC happyhack
--------------

+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| area | longtext | YES | | NULL | |
| tags | longtext | YES | | NULL | |
+-------+------------------+------+-----+---------+----------------+
Read more »

兴趣是最好的老师

Posted on 2018-02-05 | Edited on 2018-06-15 | In 自言自语 |

最近写代码的状态真是不得了,两周时间做出一个项目出来了,并且在这之间使用的都是新技术
Vue,Laravel。这两周时间对个人能力的提升相当于半年的积累了。哈哈😄

有一个段子吐槽程序员的加班

程序员去面试
HR问他:简历上显示毕业到现在才2年,为何工作经验写的是三年?
程序员说:多出来的一年是加班加出来的🤣…

今天看了下WakaTime的统计,上周五居然写了10个小时的代码!!!我自己都佩服我自己了!🤪

放几张图Mark一下

由于使用CDN域名没有HTTPS连接,导致站点变成混合模式。暂先去掉图片链接!

Read more »

Let's Encrypt更新注意事项

Posted on 2018-01-28 | Edited on 2018-10-24 | In Technology |

一般会自动更新,但是有时会失败,这时候就需要手动运行命令进行更新

1
2
3
sudo /usr/local/python/bin/certbot renew --force-renewal #强制更新

sudo /usr/local/python/bin/certbot renew #自动更新脚本

有很大的原因是因为当初创建证书的时候: DNS problem: NXDOMAIN looking up A for xxx.com 导致的

服务器上的DNS缓存未更新.

使用 nscd工具更新服务器DNS缓存

安装:

1
sudo apt-get install nscd

更新DNS缓存

1
2
3
4
5
sudo nscd -i hosts

#还可以更新passwd、group
sudo nscd -i passwd
sudo nscd -i group

如果以上两种方法都失效的话,将nginx配置文件备份,使用脚本重新生成

1
sudo cp /usr/local/nginx/conf/vhost/blog.happyhack.cn.conf{,_`date +%m%d`}

 注意重启nginx!

参考http://www.ptbird.cn/let-s-encrypt-ssl-dns-probles.html

Laravel 小结

Posted on 2018-01-28 | Edited on 2018-09-12 | In Technology |

Laravel 模型(Eloquent)

Eloquent(模型)查询一条数据是否存在返回值是一个collection的集合.

使用empty() isset()等函数对collection集合判断是否为空没有作用.

collection集合中定义了一些方法.
使用$collection->isEmpty()来判断值是否为空

Read more »

Nginx代理Google

Posted on 2018-01-25 | Edited on 2018-09-12 | In Technology |

Nginx代理Google

下载

1.oneinstack

wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz

安装oneinstack

1
2
3
tar xzf oneinstack-full.tar.gz
cd oneinstack
./install.sh #这里仅安装Nginx
Read more »

Vue 学习笔记

Posted on 2017-11-30 | Edited on 2018-08-10 | In Technology |

Vue.js 学习笔记

数据绑定

  通常用”Mustache”语法(双大括号),<span></span>

Mustache 属性不能再HTML中使用,在HTML元素中需要使用v-bind指令. <a v-bind:href="url"></a>

以上列子,冒号后面是指元素的属性,而url这是该元素的属性值

v-bind缩写 <a :href="url"></a>

<div v-bind:title="info"></div> OR <div v-bind:id="'list-' + id" ></div>

v-bind 绑定class,style

Read more »

JavaScript ES6语法笔记

Posted on 2017-11-26 | Edited on 2018-08-10 | In 小记 |

ES6 新增特性

字符串链接

多个变量需要链接的时候,可以使用+号来连接参数,但是参数一多会很麻烦,使用一下语法更加直观易懂,使用反引号`代替引号将字符串包起来。
同时使用反引号也可以定义一个多行语句;

1
2
3
4
5
6
7
8
9
let man = '小明';
let women = '小花';
let girl = '小雪';
let boy = `小平的女朋友是他朋友${man}的女友${women}的闺蜜${girl}`;

let teacher =`
Class Begin
Good Night boys and girls
`;
Read more »

PHP 单列模式和工厂模式

Posted on 2017-11-21 | Edited on 2018-08-10 | In 小记 |

单列模式

单列模式主要作用是防止一个类被重复实例化而占用系统资源,单列类必须要有以下三种元素

  • 必须有一个标记为private的构造函数
  • 必须有一个保存该类实例的静态成员变量
  • 必须有一个访问该实例的公共静态方法,通常使用getInstance()
Read more »

PHP 知识点小结

Posted on 2017-11-19 | Edited on 2018-08-10 | In 小记 |

PHP知识点小结

抽象类与接口

抽象类

抽象类使用abstract关键字申明,将某个类标记为抽象类,可以推迟实现所声明的方法。将方法定义为抽象方法,只需要省略掉包含所有大括号的方法体, 并以分号结尾即可。

抽象类不能被直接实例化,必须被继承!

Read more »

Git 常用命令

Posted on 2017-11-08 | Edited on 2018-06-15 | In 小记 |

Git仓库操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
git push origin --delete <branchName> 删除远程分支, git branch -d <branchName> 删除远程分支
git push origin --delete tag <tagname> 删除远程**tag**
git stash 将当前分支中未提交的commit暂存起来(暂存工作现场,去别的分支coding),可以多次**stash**
git stash list 列出当前分支存储的工作现场(未提交的代码),
git stash apply stash@{0} 指定恢复某一个**stash**
git stash apply 恢复分支中暂存的工作现场(未提交的代码), git stash drop 删除暂存的工作现场
git stash pop 恢复分支中暂存的commit,同事暂存的commit也删除了
git status -s 命令打印出来的信息前面 AM 意思是文件在我们添加到缓存之后又有改动(不是最新的) D 表示文件目前被删除了 ...等等 (这些以后再添加)
git config --global core.autocrlf input *git add* 的时候出现warning :LF will be replaced by CRLF 警告。是在两个系统中空格和换行不一样
git reset HEAD 取消缓存已缓存的内容,取消之前git add添加但不包含在下一提交快照中的缓存
git log 查看Git 操作命令记录(提交记录)
git reglog 查看命令历史
git reset --hard 撤销一次提交(commit)
git reset --hard 2345d 指向2345d版本(回滚到2345d那次提交)
git revert 2345d 撤销2345d的提交,将这次回滚写入提交记录,以便推送到远程仓库(多人合作)
git branch 命令没有参数的时候,列出本地的分支,所在的分支行首会有一个*号
git branch <分支名> 创建一个新的分支 git checkout <分支名> 切换到指定分支。
git checkout -b <分支名> 如果分支存在则切过去,不存在则创建切过去。
git branch -d <分知名> 删除一个分支。
git push origin --delete <branchName> 删除远程分支。
git merge 将一个分支并入当前的分支中去
git tag xxx 给历史记录中的某个重要时刻打上一个标签,git tag -a < ooxx> 给这个标签注释
git diff --shortstat "@{0 day ago}" 查看今天写了多少代码
ssh-keygen -t rsa -b 4096 -C "hi.wudong#gmail.com" 创建sshkey
.gitignore 文件用于忽略文件的进行提交。前提是该文件没有写入快照中!( .gitignore只适用于尚未添加到git库的文件。如果已经添加了,则需用 git rm --cached移除后再重新commit)
git push origin --delete branchname4 删除本地或者远程一个分支
git remote set-url origin [url] Git修改远程仓库地址 OR 先删后加 git remote rm origin
Read more »

Linux常用命令

Posted on 2017-11-08 | Edited on 2018-08-10 | In 小记 |

记录常用的一些Linux命令。

添加开机自启动脚本

  1. 首先查看当前机器的启动状态
1
2
$ runlevel
N 5

N 5 则说明当前启动是在/etc/rc5.d/文件夹下面

  0~6的各个级别

  • 0-Halt 关机模式
  • 1-Single 单用户模式
  • 2-Full multi-user with display 多用户模式
  • 3-Full multi-user with display 多用户模式
  • 4-Full multi-user with display 多用户模式
  • 5-Full multi-user with display 多用户模式
  • 6-Reboot 重启
  1. 将所需启动脚本复制到/etc/init.d/文件夹中

注意权限

  1. 创建一个软链接至/etc/rc5.d/中

举个茄子:$ sudo ln -s /etc/init.d/qiezi /etc/rc5.d/S66qiezi

Read more »

nginx搭配fail2ban 屏蔽恶意爬虫

Posted on 2017-11-03 | Edited on 2018-07-10 | In 小记 |

项目上线之后,查看日志,发现有很多爬虫在恶意扫描网站,对服务器的性能和资源造成了影响,决定使用 fail2ban 稍微屏蔽下这些家伙

安装fail2ban

ubuntu

1
sudo apt-get install fail2ban
Read more »

hexo VPS 搭建个人博客

Posted on 2017-10-30 | Edited on 2018-08-10 | In 小记 |

之前使用过GitHub的一项服务与hexo写博客,访问速度不是很理想。平时又很懒,导致写博客这件事中断了好久。重新写博客也是为了让自己管理好时间,并且从日常工作中能够提取出有用的知识,通过写博客来巩固。打算将博客搭在VPS主机上面。

博客的域名解析

如果要使用HTTPS协议来链接,这一步最好首先完成,因为DNS解析会有缓存,在使用Let’s Encrypt 生成证书的时候,可能会出现以下错误:

DNS problem: NXDOMAIN looking up XXX

这是由于域名解析没有生效,导致的。解决办法是等一会儿…

本地hexo的安装

Read more »
12

drinke8

和自己赛跑的人

39 posts
3 categories
29 tags
GayHub
0%
© 2017 — 2018 happyhack.cn
Powered by Hexo
|
Theme — NexT.Gemini