代码改变世界

随笔分类 -  PHP

php中$_REQUEST一个注意点

2012-10-12 11:02 by 轩脉刃, 7885 阅读, 收藏, 编辑
摘要: 问题 说起$_REQUEST,大家都知道的是它是$_GET和$_POST的集合。但是如果你有心的话,查一下文档,会看到: $_REQUEST An associative array that by default contains the contents of $_GET, $_POST and $_COOKIE. 这里说$_REQUEST默认是$_GET, $_POST, $_COO... 阅读全文

mysql分区

2012-10-11 10:04 by 轩脉刃, 5612 阅读, 收藏, 编辑
摘要: mysql的分区概念 在mysql 5.1.3之后引入和partition(分区)的概念。这个是个好东东。以前遇到一个大表的时候,我们会手动将其分为几个小表(就是分表操作)。但是分表操作有几个缺点:1 麻烦,这里指的麻烦是不仅对于调用分表的sql语句的处理上,也是分表的具体操作步骤上。2 当一个表从单表变为分表的时候,上层sql逻辑也需要进行修改,而且是大范围的修改! 引入分区的概念就简... 阅读全文

记录mysql性能查询过程

2012-10-10 10:09 by 轩脉刃, 6204 阅读, 收藏, 编辑
摘要: 一切源于一个实验,请看下面的例子: 表: CREATE TABLE IF NOT EXISTS `foo` (`a` int(10) unsigned NOT NULL AUTO_INCREMENT,`b` int(10) unsigned NOT NULL,`c` varchar(100) NOT NULL,PRIMARY KEY (`a`),KEY `bar` (`b`,`a`)) ENG... 阅读全文

Mysql中分页查询两个方法比较

2012-10-09 17:21 by 轩脉刃, 186015 阅读, 收藏, 编辑
摘要: mysql中分页查询有两种方式, 一种是使用COUNT(*)的方式,具体代码如下 SELECT COUNT(*) FROM foo WHERE b = 1;SELECT a FROM foo WHERE b = 1 LIMIT 100,10;另外一种是使用SQL_CALC_FOUND_ROWSSELECT SQL_CALC_FOUND_ROWS a FROM foo WHERE b = 1 LIM... 阅读全文

说说PHP的autoLoad

2012-09-27 11:04 by 轩脉刃, 4939 阅读, 收藏, 编辑
摘要: php的autoload大致可以使用两种方法:__autoload和spl方法。这两种方法又各有不同的几种使用方法。 __autoload的使用方法1: 最经常使用的就是这种方法,根据类名,找出类文件,然后require_one function __autoload($class_name) { $path = str_replace('_', '/', $class_name); require $path . '.php';}// 这里会自动加载Http/File/Interface.php 文件$a = new Http_File_Int 阅读全文

PHP静态调用非静态方法

2012-09-12 22:53 by 轩脉刃, 17529 阅读, 收藏, 编辑
摘要: 静态调用非静态方法!!这在java,c#中是不可想象的,也是绝对不行的。这样的错误在这些语言中会在编译阶段就被指出错误的。但是对于php这样的动态语言呢?首先这个是语法没有错误的,php –l 找不出错误来的。如果运行呢? 先看一个例子 <?phpclass myClass{ private $name = "myClass"; public function echoName(){... 阅读全文

Zend的Captcha机制

2012-08-13 18:31 by 轩脉刃, 2249 阅读, 收藏, 编辑
摘要: 如何生成验证码图片?使用php的GD? ok,right。其实Zend的Captcha模块已经封装好了。这篇文章就说一下如何使用Zend的Captcha模块。 环境安装 首先Zend的Captcha需要安装GD。查看有没有安装GD需要去phpinfo()中看是否有GD模块。(注意,有可能出现php -m里面的模块有gd但phpInfo()里面的模块没有gd,这个问题是说明你的PHP和Ap... 阅读全文

Zend的MVC机制(二)

2012-08-07 13:45 by 轩脉刃, 1793 阅读, 收藏, 编辑
摘要: 接着上面的一篇 把代码贴上来 $front = Zend_Controller_Front::getInstance();Zend_Layout::startMvc(array('layoutPath' => USVN_LAYOUTS_DIR));$front->setRequest(new Zend_Controller_Request_Http());$front->th... 阅读全文

Zend的MVC机制(一)

2012-08-06 11:31 by 轩脉刃, 1806 阅读, 收藏, 编辑
摘要: 代码 $front = Zend_Controller_Front::getInstance();Zend_Layout::startMvc(array('layoutPath' => USVN_LAYOUTS_DIR));$front->setRequest(new USVN_Controller_Request_Http());$front->throwExceptions(tr... 阅读全文

Zend的Registry机制

2012-08-03 10:02 by 轩脉刃, 2877 阅读, 收藏, 编辑
摘要: 项目过程中有很多全局变量, 需要全局存储,是否是使用全局变量来进行存储?那就弱爆了。Zend使用Registry机制(注册表)存储对象和值,是一个存储对象和值的容器。 Zend_Registry这个类就是做这个目的 代码示例 Zend_Registry::set('config', $config); Zend_Registry::get('config'); 代码分析 这两... 阅读全文

Zend的Config机制

2012-08-02 13:04 by 轩脉刃, 1631 阅读, 收藏, 编辑
摘要: Zend的Config类在Zend_Config_Ini 代码 $config = new Zend_Config_Ini("/var/www/html/usvn/config/config.ini", "general"); date_default_timezone_set($config->timezone); USVN_ConsoleUtils::setLocale($config->system->locale); === Config.ini文件内容 [general] url.base = "/usvn" 阅读全文

Zend的AutoLoad机制

2012-08-01 22:10 by 轩脉刃, 2284 阅读, 收藏, 编辑
摘要: 在使用zend framework的时候,最先引入的一定是AutoLoad的机制,这里就想分析下Zend的AutoLoad是怎么引入的。 代码示例 set_include_path(USVN_LIB_DIR . PATH_SEPARATOR . get_include_path());require_once 'Zend/Loader/Autoloader.php';$autolo... 阅读全文

Jquery-ui draggable

2012-07-27 00:35 by 轩脉刃, 1386 阅读, 收藏, 编辑
摘要: Jquery ui的draggable插件让某个元素能被鼠标拖拽。 draggable和droppable的区别: draggable只是控制拖拽,如果你要控制拖拽和放下两个动作,你需要使用的是droppable插件 draggable有三个事件可以定义回调函数: start, stop, drag 这三个事件定义的回调函数可以有两个参数,一个是原始的浏览器定义的... 阅读全文

又见尾递归

2012-07-12 17:29 by 轩脉刃, 3573 阅读, 收藏, 编辑
摘要: 这几天看到几篇关于尾递归的文章,之前对尾递归没有多大概念,所以回头研究了一下尾递归。 尾递归的概念 尾递归(Tail Recursion)的概念是递归概念的一个子集。对于普通的递归,由于必须要记住递归的调用堆栈,由此产生的耗用是难以估量的。比如下文中php小节第一个例子使用php写一个阶乘函数,就是由于递归造成了栈溢出的错误。尾递归出现的目的就是消除递归栈耗损这个缺憾的。 从代码... 阅读全文

UltraEdit高级使用技巧

2012-05-02 17:22 by 轩脉刃, 19773 阅读, 收藏, 编辑
摘要: UltraEdit是众多IDE中颇有亮点的一款,它功能强大,这里说一下它的一些很好用的功能。 列模式 很多人喜欢上UltraEdit最初就是由于它的列模式。 进入列模式: Alt + C 如何对多个行进行注释 1 进入列模式 2 选定多个行 3 增加注释符 计算列的多个数的和 1 进入列模式 2 选择统计的列 3 列 -- 列选择统计 更多列模式的操作可以参考这里 UltraEdit中的脚本 脚本只支持ASCII/ANSI files编码,UTF-8是会出错的 几个常用的命令 var str = UltraEdit.ge... 阅读全文

编码史记

2012-04-21 10:44 by 轩脉刃, 4006 阅读, 收藏, 编辑
摘要: 昨天听了一个同事的编码讲座,很精彩。想起了要写这个文章分享一下各种编码是如何产生的。 字符编码的故事 字符是什么 字符是什么?就是有意义的图形,比如a,中等。在不同的国家代表不同的意思。 但是在计算机世界中只有0和1,好了,如何用0和1将这些字符表示出来呢?这就是编码存在的意义。 编码一点也不高深,就是一个计算机的01和字符ab的简单映射。 于是故事开始了... 很久很久以前,计算机世界只有美国人。美国人的文字造诣很低的,他们的所有文字就只有26个字母,甚至加上大写和小写,阿拉伯数字,计算机中的控制符(回车啥的)都不超过256个(只有127个)。于是,对于他们来说,很自然,那么计... 阅读全文

一些工作中遇到的问题分享

2012-04-19 19:21 by 轩脉刃, 2052 阅读, 收藏, 编辑
摘要: 这些是在工作过程中遇到的问题 当bash命令中有warning,想消除warning怎么做? cat access.log 2> /dev/null 将系统error不返回到控制台 这里使用2> /dev/null 要分析一个很大(10G)的nginx日志,将最近5分钟的access.log进行分析,怎么做? 这里不能使用高级语言,把10G的日志读到内存中再进行处理是不合理的 使用ba... 阅读全文

Zookeeper简介

2012-04-19 18:57 by 轩脉刃, 16732 阅读, 收藏, 编辑
摘要: 更多内容请查看zookeeper官网 Zookper: 一种分布式应用的协作服务 Zookper是一种分布式的,开源的,应用于分布式应用的协作服务。它提供了一些简单的操作,使得分布式应用可以基于这些接口实现诸如同步、配置维护和分集群或者命名的服务。Zookper很容易编程接入,它使用了一个和文件树结构相似的数据模型。可以使用Java或者C来进行编程接入。 众所周知,分布式的系统协作服务很难有... 阅读全文

Nginx 模块-细节详探

2012-04-01 12:36 by 轩脉刃, 10643 阅读, 收藏, 编辑
摘要: 本文主要基于 http://www.codinglabs.org/html/intro-of-nginx-module-development.html 和 http://www.evanmiller.org/nginx-modules-guide.html#compiling 的学习些的 nginx模块要负责三种角色 handler:接收请求+... 阅读全文

Nginx 第三方模块-漫谈缘起

2012-03-30 10:10 by 轩脉刃, 9486 阅读, 收藏, 编辑
摘要: 本文的部分内容和图片摘录于http://tengine.taobao.org/download/nginx@taobao.pdf 为什么要使用nginx模块?我个人觉得taobao这个ppt来做说明是最好不过了 从web服务器结构开始说起: 第一个模式(LAMP): 这个结构中,Apache的PHP模块将所有动态网页都使用php解析,所有逻辑结构都放在php中进行处理。 这个结... 阅读全文