debian部署 个人环境部署 apt-get install sudo apt-get install vim vim /etc/sudoers #增加 shagon ALL=(ALL:ALL) NOPASSWD:ALL sudo vim /etc/vim/vimrc #去掉 syntax on 前的注释 set tabstop=4 set softtabstop=4 colorscheme desert vim /home/shagon/.ssh/authorized_keys #增加本地密钥 #安装 oh-my-zsh sudo apt-get install zsh sudo apt-get... 2017-10-30
mysql 列值转换和统计 将 user_sample uid 201608 201609 201610 201611 张三 iPhone mi mi Google 李四 mi mi Google Google 王五 Google mi iPhone iPhone 转换为 phone_result uid iPhone mi Google 张三 1 2 1 李四 0 2 2 王五 2 1 1 sql 如下: drop table if exists tmp; drop table if exists phone_result; create table tmp as select uid, `201608` as... 2017-09-13
62进制转换 //十进制转为 62 进制 function encode62($number) { $base = 62; $index = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $ret = ''; for ($t = floor(log10($number) / log10($base)); $t >= 0; $t--) { $a = floor($number / pow($base, $t)); $ret .= substr($index... 2017-08-31
发现最近还有些访问来自 typecho 论坛,所以特地解释一下,本站已经不是 typecho 系统,是我用 yaf 框架重新开发的。 3 月份发帖时,本站是基于 typecho 二次开发的,去除了所有我不需要的功能。后面几个月业余时间,时不时地又改了很多东西。 但是 typecho 非 MVC 模式和一些设计思路,我个人感到很别扭,导致二次开发的效率不高。最终决定推倒重来,两周就撸了基于 yaf 框架的现在的系统。当然,效率高主要得益于前面的二次开发已经全新封装了大部分的类库。 样式设计,特别是后台设计,参照了 typecho,在【关于】中有声明。 做这个站纯粹自娱自乐,主要记录宝宝的成长... 2017-05-29
建站之天气获取 写文章时自动抓取当前天气,找了几个 api 都不靠谱,直接采集中国天气网的数据。 例如采集富阳的天气地址: $url = 'http://www.weather.com.cn/weather/101210108.shtml'; $raw = file_get_contents($url); $raw = str_replace("\n", '', $raw); if (preg_match('', $raw, $match)) { //匹配到天气文字 } 2017-05-26
建站之 redis 纯内存运行 mysql 做永久存储,redis 做缓存。所以将 redis 设置为纯内存运行,减少开销。 编辑 /etc/redis/redis.conf,修改下列几项 #注释掉 save 项 #save 900 1 #save 300 10 #save 60 10000 #设置最多 1G 内存 maxmemory 1GB maxmemory-policy volatile-lru appendfsync no 2017-05-19
建站之视频处理 借助 ffmpeg 扩展处理视频。包括自动旋转、截图、转换格式等。 ubuntu 下安装扩展 sudo apt-get install ffmpeg 获取视频尺寸、旋转角度 /** * /usr/bin/ffprobe video.mp4 -show_streams -print_format json */ public static function info($video) { $raw = shell_exec(sprintf('%s %s -show_streams -print_format json', self::ffprobe(), $video))... 2017-05-18
建站之友好时间显示 public function format($time) { if (invalid_integer($time)) { return ''; } $now = time(); $today = strtotime(date('Y-m-d', $now)); $tmp = $now - $time; if (60 > $tmp) { return '刚刚'; } elseif (3600 > $tmp) { return floor($tmp / 60) . ' 分钟前'; }... 2017-05-18