- 博客(15)
- 收藏
- 关注
原创 php命名空间
命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。例:项目中有两个模块:article和message board,它们各自有一个处理用户留言的类Comment。之后我可能想要增加对所有用户留言的一些信息统计功能,比如说我想得到所有留言的数量。这时候调用它们Com
2016-10-21 10:35:42 400
原创 配置nginx支持TP框架
TP框架配置中默认URL_MODEL=1,而Nginx默认是不支持PATHINFO的。如果我们只想跑起来tp框架,很简单,只需到更改TP配置,设置URL_MODEL=3(兼容模式)。但是如果要让Nginx支持ThinkPHP PATHINFO需要做如下配置:1、设置ThinkPHP URL模式URL_MODEL=1; 2、修改nginx配置文件(红色部分更改称相应的内容)server
2016-10-19 15:36:25 2675 1
原创 如何打造自己的coreseek/sphinx分词词库
下面给大家介绍一下如何打造自己的coreseek分词词库。 coreseek自身带的词库不是很大,直接使用它分词可能会返回大量没用结果。要想搜索结果准确打造一个专门的分词 词库必不可少。i. 首先到搜狗http://pinyin#sogou#com/dict/下载你要的词库ii. 因为下载回来的词库不是文本文件我们不能直接使用,所以要先转换成文本文件。网上找一个搜狗转 google的小工具
2016-10-17 20:58:46 2153
原创 error_log()将错误信息写入日志文件
error_log() 是发送错误信息到某个地方的一个函数,在程序编程中比较常见,尤其是在程序调试阶段。 bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )把错误信息发送到 web 服务器的错误日志,或者到一个文件里。m
2016-10-17 20:51:40 9609
原创 php.ini 配置 error_log 错误信息
开发的时候,基本上都会把display_errors,error_reporting开启,有助于提高开发效率,上线后,基本上都会关掉页面报错信息,在把报错信息,放到文件中。一,php-fpm的error_log配置1,修改php.inidisplay_errors = Off //改为off,页面访问时就不会出现报错信息了 2,修改php-fpm配置文件;php_flag
2016-10-17 20:46:07 9085
原创 redis使用watch完成秒杀抢购功能
redis使用watch完成秒杀抢购功能:使用redis中两个key完成秒杀抢购功能,mywatchkey用于存储抢购数量和mywatchlist用户存储抢购列表。它的优点如下:1. 首先选用内存数据库来抢购速度极快。2. 速度快并发自然没不是问题。3. 使用悲观锁,会迅速增加系统资源。4. 比队列强的多,队列会使你的内存数据库资源瞬间爆棚。5. 使用乐观锁,达到综合需
2016-10-12 21:21:46 1458
原创 redis五种运用类型场景
一、redis 数据结构使用场景原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码。目前目标是吃透 redis 的数据结构。我们都知道,在 redis 中一共有5种数据结构,那每种数据结构的使用场景都是什么呢?String——字符串Hash——字典List——列表Set——集合Sorted Set——有序集合下
2016-10-12 20:59:47 327
原创 命令行执行带参数的php脚本,并取得参数
一,为什么我们要在命令行下运行php脚本呢?个人理解,主要有二个原因:1,利用crontab去跑php,可以给服务器减压,当然在这里有一个条件,就是实时性要求不高。比如:sns中的好友动态,这个实时要求不高,但是数据量比较大,这个时候定时跑的话,会给web服务器,数据库服务器分担不小的压力。2,就是我们要定时去完成某一事情,比如:我要删除一个月前,用户留言,这个时候,写的php脚本在c
2016-10-08 19:30:02 756
原创 crontab执行不了php的解决方法
用crontab跑php程序时,如何去调试,各人有各人的方法。我也有套方法,看一下,我是如何解决crontab执行不了php程序这个问题的。一,php文件有没有执行权限[root@linux cron]# ls -al |grep del -rwxr-xr-x 1 zwh ftpgroup 494 10-20 16:42 del_redis.php如果没有X,说明没有执行权
2016-10-08 19:27:45 277
转载 php.ini save_handler 修改不起作用 解决办法
php5.3.3以前php-fpm还没有被php收录,配置php基本都在php.ini里面,php5.3.3及以后,除了在php.ini配置以外,还可以在php-fpm.conf里面配置。多个地方都可以配置的话,就存在一个优先级。php-fpm.conf优先级比php.ini高。1,修改/etc/php-fpm.conf,或者,/etc/php-fpm.d/*.conf,或者,/usr
2016-10-08 19:14:38 2120
原创 php 去掉 头尾 空格 2种方法
看似很简单的问题,其实还是有点坑的,首先这里 空格转义,不是字符串,直接用trim()是去不掉。1,用preg_replace替换$test = " dfadad 论责民与三英的关系775fd "; $test = preg_replace('/^( |\s)*|( |\s)*$/', '', $test); var_dump($test); //结果如下:
2016-10-08 19:03:56 4575
原创 php word 转 html
要想完美解决,office转pdf或者html,最好还是用windows office软件,libreoffice不能完美转换,wps没有api。先确认com模块是不是开启,phpinfo里面如果有com_dotnet模块,说明已开启,如果没有,修改php.ini,com.allow_dcom = true前面的注释去掉,重启就OK了,php官方网站说,php5.4.5之前,com
2016-10-08 19:01:05 531
原创 php 利用socket上传文件
socket通信原理的博文http://blog.51yip.com/php/673.htmlsocket的服务器和客户端都是要用php命令来运行的。平常我们上传文件是浏览本地文件,通过一个php程序将文件上传一个地方,这个时候我们用php命令来运行php程序就不方便了。这个时候我们可以用fsockopen来打开一个socket通道,并且可以通过浏览器来访问页面。下面有一个例子,大家可以试一下...
2016-10-08 18:58:43 710
原创 php 跨域 form提交 2种方法
出于安全因素考虑,直接跨域访问是不允许的,下面介绍二种跨域的方法。一,通过php curl function curlPost($url,$params) { $postData = ''; foreach($params as $k => $v) { $postData .= $k . '='.$v.'&';
2016-10-08 17:03:29 432
原创 php 大访问量 数据重复问题
大访问量,或者受到恶意攻击的情况,数据库没有设计好,很容易产生重复数据。有三个请求,同时到达php,php同时到数据库查询,有没有数据,发现没有,同时插入3条数据。这么巧都是同时?事实确实会同时。解决办法,个人能实现的有3种。1,通过唯一索引,联合主键限制等。例如,用户表手机号,邮箱一般都是唯一的。订单表的订单号也是唯一。2,通过锁表。例如,现在对表进行插入操作前,php先lo
2016-10-08 17:01:31 917
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人