
PHP开发
文章平均质量分 61
xuxuer
这个作者很懒,什么都没留下…
展开
-
Yii的事件机制原理及应用分析
Yii中的事件机制原理及应用分析 YII的事件机制,是其比较独特之处,合理使用好事件机制,会使各个组件之间的耦合更为松散,利于团体协作开发。 何时需要使用事件,如何给事件绑定事件处理函数,以及如何触发事件,与其它语言是有较大的差别的。例如Javascript中,可以使用$(‘#id’).onclick(function() {});方式给DOM元素绑定处理函数...2013-03-15 18:10:39 · 282 阅读 · 0 评论 -
深入分析Redis Server went away产生的原因
目前项目对Redis依赖较重,使用phpredis扩展操作Redis, 但频繁出现Redis server went away错误。 常见的网络连接错误原因:Network is unreachable到目标ip无可用路由 非常罕见(断网,或没有网关时)connection timedouttcp建立连接超时(目标主机不可达到,或产生...2017-12-08 15:11:12 · 6538 阅读 · 0 评论 -
PHP中STDIN, STDOUT, STDERR的重定向
<?phpfunction test(){ $file = '/tmp/std.log'; global $STDOUT, $STDERR; $handle = fopen($file, "a"); if ($handle) { unset($handle); @fclose(STDOUT); ...2017-04-19 20:41:29 · 871 阅读 · 0 评论 -
PHP 5.3.0以上推荐使用mysqlnd驱动
1.什么是mysqlnd驱动?PHP手册上的描述:MySQL Native Driver is a replacement for the MySQL Client Library (libmysql). MySQL Native Driver is part of the official PHP sources as of PHP 5.3.0. mysqldnd即my...2013-06-27 08:56:21 · 307 阅读 · 0 评论 -
php json_encode不支持gbk gb2312编码的处理方法
php json_encode只支持utf-8编码,自定义一个函数即可解决之: public function my_json_encode(array $data) { $s= array(); foreach($data as $k => $v) { if(is_array($v)) { $v = ...2013-06-07 12:46:18 · 724 阅读 · 0 评论 -
大数据量分页(海量数据分页)的高效实现
海量数据分页,已经无法使用数据库自带的分页机制,比如MySQL 的 Limit ,这会导致严重的性能问题, 经过生产环境大数据量千万级数据量分页实现的 的总结,目前为止我 所使用 的大数据量分页机制 有 两条: 1. 如果表中存在 连续 的数字列并 为 索引,那么通过页码即可计算出此字段的范围,直接作范围查询即可:start = (page-1)*pagesizee...2012-09-13 09:02:45 · 4334 阅读 · 0 评论 -
Yii组件机制之三:路由组件urlManager
Yii组件机制之三:路由组件urlManager URL路由,是指通过分析URL, 找出请求的控制器及动作。路由信息就是指控制器及动作组成的请求字符串,形如controllerID/ActionID。 Yii中的路由主要有两重作用:1. 根据请求URL找到应对的控制器及其方法2. 根据提供的参数及规则生成...原创 2012-09-10 15:41:24 · 336 阅读 · 0 评论 -
Yii组件机制之二:组件的使用及扩展
Yii的组件机制详解应用程序CWebApplication组件在说明Yii中各个组件使用方法前,先了解最重要的一个组件CWebApplication。CWebApplication即应用程序对象,它的根类也是CComponent,故它也是一个组件,具有Yii组件的共同特征。具体来说,CWebApplication组件的主要作用是根据配置文件,加载必要的辅助组件,并在...2012-09-07 10:35:49 · 169 阅读 · 0 评论 -
Yii的组件机制之一:组件基础类CComponent分析
Yii的组件机制组件机制,是Yii整个体系的思想精髓,在使用Yii之前,最应该先了解其组件机制,如果不了解这个机制,那么阅读Yii源代码会非常吃力。组件机制给Yii框架赋予了无穷的灵活性和可扩展性,可以毫不夸张地说,Yii框架的基础结构就是组件。大到CApplication对象、控制器、路由管理器(urlManager),小到一些其它插件,均是以组件形式存在的。什么是Yii组件...2012-09-07 10:34:31 · 182 阅读 · 0 评论 -
Yii中的错误及异常处理
Yii中的错误及异常处理 Yii已经默认已经在CApplication上实现了异常和错误的接管,这是通过php的set_exception_handler, set_error_handler实现的。通过这两个PHP内置函数,可以对程序中未捕获的异常以及错误进行接管处理,从而提高程序的可维护性。这在大型系统是至关重要的,当发生错误时,我们希望能将相关详细信息记录,甚至是即时发送报警...原创 2012-09-04 17:54:04 · 416 阅读 · 0 评论 -
Yii的日志的处理机制以及扩展案例
Yii使用层次的日志处理机制,即日志的收集与日志最终的处理(如显示、保存到文件、保存到数据数)是分离的。 日志信息的收集由CLogger(日志记录器)完成,而日志信息的分发处理,则在CLogRouter的调度(称为日志路由管理器)下,分发给处理对象(如CFileLogRoute以及logging目录下继承自CLogRoute的类, 称为日志处理器),经过反复阅读其源代码,我更是为Y...2012-09-03 18:20:51 · 200 阅读 · 0 评论 -
Yii框架常见问题
1. 如何让默认的程序显示为中文?修改protected/config/main.php, 全局配置中增加或修改 'language' => 'zh_cn',另外,yii默认支持的语言类型,可参照框架目录中的views目录。2. 如果控制器中生成的变量很多,需要拼装成数组传递给render方法,如何才能更简洁一些?使用get_defined_vars...原创 2012-08-21 15:40:46 · 208 阅读 · 0 评论 -
ThinkPHP 3.1中的SQL注入漏洞分析----论ThinkPHP 3.1中的半吊子的PDO封装
ThinkPHP 3.1中的SQL注入漏洞分析----论ThinkPHP 3.1中的半吊子的PDO封装 我总结ThinkPHP的PDO封装可以用买椟还珠来下结论,表面上封装了PDO支持,但实际却并没有使用到PDO的精髓部分,这不是买椟还珠是什么呢? 花了一些时间了解到ThinkPHP 3.1框架,其官方网站上对其描述得相当不错,但随着我阅读其代码,事实并不是想象...2013-04-19 21:47:04 · 462 阅读 · 0 评论 -
phpcms v9内容页标题无法显示的解决方法
说明:仅是gbk版本的phpcms v9存在此问题内容页标题不显示,经过反复检查,这是phpcms的一个bug, 原因如下: 1. caches/caches_model/caches_data/content_output.class.php(原始代码文件为modules/content/fields/title/output.inc.php)的title函数...原创 2012-11-06 09:11:20 · 573 阅读 · 0 评论 -
php 5.4 APC invalid pointer报错的解决办法
为什么要使用APC ? 经过一些压力测试(使用apache ab工具),得出以下结果: 1. 使用ab发起相同请求参数,启用APC后,服务器负载降低一半,也就是说启用APC后,服务器负载能力提升约2倍。 2. 启用APC后,脚本执行速度约有20%-30%提升,这也是使用ab的测试报告总结。 3. 我曾经在生产环境使用第三方的缓存,如xcache, eAcceler...2013-04-12 15:58:31 · 482 阅读 · 0 评论 -
PDO防注入原理分析以及使用PDO的注意事项
我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题:为什么要使用PDO而不是mysql_connect?为何PDO能防注入?使用PDO防注入的时候应该特别注意什么? 一、为何要优先使用PDO?PHP手册上说得很清楚:Prepared statements and stored proceduresMany of the...2013-03-24 18:09:45 · 359 阅读 · 0 评论 -
Nginx php upstream sent unexpected FastCGI record: 3 while reading response head
调用fastcgi_finish_request时,请求数超过max_requests时产生,fpm发送两次FCGI_END_REQUEST记录 测试的脚本及配置:<?php ignore_user_abort();fastcgi_finish_request();sleep(10); ?> Nginx configuration ...2017-03-16 17:32:36 · 1482 阅读 · 0 评论