董鑫的博客

Memecached缓存原理及基本操作、分布式(一致性hash)

ElasticSearch之centos安装

ElasticSearch之PHP-SDK基础篇

Dockerfile自动构建镜像

PHP判断上传文件类型(防修改后缀)

用PHP做上传文件功能时,一般限制可上传的文件类型的做法是通过文件的后缀进行判断,但这样的做法存在缺点,相信所有的phper们都是知道的,只要修改一下文件后缀,各种文件皆可上传。下面我们提供一个通过读取文件头来判断文件类型的方法,但是读文件头是不能真实判断文件类型的,判断文件类型,是一个很复杂的工作,下面是php读文件头判断文件类型的代码,但是不精准,可...

php $_SERVER[''REMOTE_ADDR'] 获取IP并不真实

最近有个小项目投票上线了,结果发现投票没多久就出现投票不成功的错误(IP限制数超越错误)!连上服务器的数据库一看,发现数据库IP记录清一色是167863555(ip转int后),这地址是服务器内网的IP,很可能就是服务器的代理IP。翻看Controller,发现IP获取是ip=_SERVER[‘REMOTE_ADDR’]; 咋看这代码似乎问题不大,本地测试时候IP获取也正常,但生产环境却大有不同,...

PHP操作redis

Redis::__construct构造函数 $redis = new Redis(); connect, open 链接redis服务 参数 host: string,服务地址 port: int,端口号 timeout: float,链接时长 (可选, 默认为 0&am...

PHP中new static()与new self()的区别

self - 就是这个类,是代码段里面的这个类。static - PHP 5.3加进来的只得是当前这个类,有点像$this的意思,从堆内存中提取出来,访问的是当前实例化的那个类,那么 static 代表的就是那个类。还是看看老外的专业解释吧:...

PHP依赖注入容器

使用依赖注入的思路是应用程序用到Foo类,Foo类需要Bar类,Bar类需要Bim类,那么先创建Bim类,再创建Bar类并把Bim注入,再创建Foo类,并把Bar类注入,再调用Foo方法,Foo调用Bar方法,接着做些其它工作。...

PHP的依赖注入(DI) 和 控制反转(IoC)

依赖注入和控制反转是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同。依赖注入是从应用程序的角度在描述,可以把依赖注入,即:应用程序依赖容器创建并注入它所需要的外部资源;而控制反转是从容器的角度在描述,即:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。...

配置linux环境变量

注意:修改后等1分钟再查看 echo $path查看PATH:echo $PATH以添加MongoDB server为列修改方法一:export PATH=/usr/local/mongodb/bin:$PATH//配置完后可以通过echo $PATH查看配置结果。生效方法:立即生效有效期限:临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢复原有的path配置用户局限:仅对当前用户...