LMLPHP后院

使用PHP实现的最简洁快速的登录访问控制技术

maybe yes 发表于 2016-02-15 22:10

个人做产品,和公司不一样。公司由于管理层级的压制,部门之间责任推卸等因素,导致产品效率很低,并且一般不敢或者不可以使用快速简单的实现方法。相反的,如果是个人做产品,时间比较紧的时候,在某些时候适当的使用一些临时处理方案是很好的选择。

比如,我们做的某个系统,或者某个系统的某些部分临时需要进行访问控制。在很短的时间内搭建用户系统,实现密码控制太累,也非常的傻逼。可以通过文件,Cookie 实现快速的访问控制,一般一个系统使用的人也就只有一个人,这样做也算是比较好的解决方案了。

下面的 PHP 函数实现了简单的访问控制,算是非常的精炼了。笔者看过很多的开源系统也大都是这样的类似的实现方式。分享代码如下:

使用PHP实现获取周的起始和结束日期技术

maybe yes 发表于 2016-02-15 22:03

跨年过去了几天,有些程序在获取周的起始和结束日期时出现 BUG,导致很多统计出现错误。经过排查,发现是通过周和年两个参数获取周的起始和结束日期的方法有问题导致。需要弄明白这个问题,需要明白周是可以跨年的,比如 2015年的最后一周是第 53 周,日期是 2015 年的 12 月 28 日到 2016 年的 1 月 3 日。

所以当你使用 PHP 的 date 函数在 2016 年的 1 月 1 日获取周时,返回的值是 53,返回的年是 2016。如果没有弄清楚概念,还会以为是 2016 年的第 53 周呢。所以周和年是没有什么特别的关系的。写时间的转换函数,首先一定是通过时间戳。下面的实现不是太完美,但是选择了某人的生日作为一个参照点来计算。我一直以为这样功能的函数其实真的不需要传参数,所以两个参数都是可选的。代码如下:

三大JqueryCDN地址及LMLJS竞争加载示例技术

maybe yes 发表于 2016-02-15 21:58

有关 Jquery 的 CDN 地址,如果您在百度啊等的搜索引擎上找反而找不到合适的,竟然有人给出了新浪的,新浪的 Jquery CDN 一看就不是专业的 CDN 服务商,并且很不稳定,很多版本缺少了。如果网站需要使用 Jquery 的话,用外界的 Jquery CDN 比较自己服务器上感觉更要可靠,所以选择正确的 CDN 地址非常重要。

笔者用过 Jquery 自带的 CDN,是 MaxCDN 提供的,感觉蛮可靠的,官方另外还推荐了 Google 和 MicroSoft 的 CDN,用过之后都感觉不错。为了让世界各地的人访问都能最快的加载完成,可以使用 LMLJS 的 competeLoad 来实现。

Nginx 403 错误解决方法技术

maybe yes 发表于 2016-02-15 21:49

前一阵子在配置 Nginx 时,总是出现 403 错误,虽然之后看起来这个问题是非常简单的,但是对于不熟悉的人来讲,能找到问题还是很不容易的,请求了运维大哥,大哥依然找了很久就没能解决问题,最后解决问题了也是碰巧,还是没能真正的理解到 Nginx 的配置的含义。

Nginx 的配置比 Apache 要简单,好像并不能继承默认的 localhost,比如 index 的配置,不愧是轻量级的服务器。大概的配置如下所示:

server {
	listen 80;
	server_name home.may;
	#ssl_certificate ssl/example.com.crt;
	#ssl_certificate_key ssl/example.com.key;
	error_log /var/log/nginx/home.may.error.log;
	charset utf-8;
	root /home/leiminglin/work/code/may/lml;
	index index.html index.php;
	location / {
		try_files $uri $uri/ /index.php?$query_string;
	}
	location ~ \.php$ {
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
		fastcgi_split_path_info ^(.+\.php)(.*)$;
		include fastcgi_params;
	}
}

Git更新master分支冲突解决及cherry-pick使用技术

maybe yes 发表于 2016-02-15 21:42

前一阵子,开发的时候发现主分支不能更新,运维大哥,憋了一个大招,提供了几个命令,解决了一番。如下命令:

git reset origin/master 
git reset --hard 
git clean -fd 

造成上面的原因大概就是 master 分支出问题之后,强制更新导致本地和服务器不一样导致。上面的命令请谨慎使用,会删除目录下没有添加到 git 仓库的其他代码,本人也是经历过一次血的教训。

开发过程中,有时候我们需要将某个提交给提取出来,使用 cherry-pick 可以很方便的做到哦,使用非常简单,后面跟上 commit hash 值就可以了。如下示例:

2024-05-11 15:53:35 1715414015 0.006788