自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 解决在pagodabox上部署Kohana框架时无法写cache和logs的问题

最近闲着无事,就像把之前写的东西部署到pagodabox中玩玩, 其实这个玩意儿还是很不错的。支持git直接进行代码部署,而且在创建应用的时候,可以直接填写你在github上托管的项目地址,它会自动clone一份代码到服务器上进行初始化部署,初始化完了以后,你就可以用git对其进行版本控制和代码...

2012-12-18 15:53:54

阅读数 636

评论数 0

原创 Kohana3.x中使用单元测试

首先,phpunit是在pear下安装的。因此,我们首先应该安装pear。 在windows下安装pear很简单,在php安装的根目录下有go-pear.bat批处理文件,双击该文件一路选择默认即可。 然后我们开始安装phpunit。首先打开命令行,应用pear命令来安装。PHPUnit官方网...

2012-09-26 11:32:56

阅读数 898

评论数 0

原创 PHP中的反射机制汇总

今天无意间看之前使用过的一个框架,想到这个框架可以根据controller的action中的注释来决定执行该动作是否需要进行身份验证,就想研究一下他是怎么实现的。找到了相应的实现位置,发现里面使用了大量的反射特性。刚好我对反射也不熟,所以就像研究研究。         首先了解到了一个函数:ge...

2012-09-13 16:46:29

阅读数 2239

评论数 0

原创 MySQL中的锁机制

在MySQL中有三种锁定机制:表级锁定、行级锁定和页级锁定 表级锁定 其中MyISAM使用的就是表级锁定,下面说说表级锁定的特点 表级锁定的类型包括:读锁定、写锁定 当线程A对表A进行读锁定后:       线程A可以对表A进行读操作、线程A对其进行update操作时会报错,提示...

2012-06-20 15:49:16

阅读数 1068

评论数 0

原创 Kohana使用auth模块session_type选择database时无法写入session的问题解决

把用户登陆的session写入数据库,于是配置auth如下: config/auth.php: return array( 'driver' => 'orm', 'hash_method' => &...

2012-05-16 16:33:55

阅读数 1988

评论数 0

原创 C实现类似C++中的泛型效果

#include #include int intComp(void *a, void *b){ int *p1 = (int *)a; int *p2 = (int *)b; return *p1 - *p2; } int strComp(void *a, void *b){ ...

2012-05-12 18:37:27

阅读数 533

评论数 0

原创 Python 中的文件编码格式

在Python中文件的默认编码格式是utf-8,我们也可以告诉Python文件的编码格式,例如指定文件的编码格式为gb2312: # -*- coding: gb2312 -*- 下面是一个例子(文件编码格式为gb2312): print("文件编码格式是gb2312")...

2012-05-09 16:57:08

阅读数 2043

评论数 0

原创 PHP的两种方式CGI和mod_php的比较

最近PHP又爆出漏洞: ‘当 PHP 以 CGI 模式运行时 (如 Apache 的 mod_cgid), php-cgi 会接受处理一個查询字符串作为命令行参数以开启某些功能 如 -s, -d 或 -c 传递给 php-cgi, 此处存在的漏洞可以允许攻击者查看源码或进行任意代码执行&#...

2012-05-09 10:15:56

阅读数 5237

评论数 0

转载 PHP中模拟post提交数据的方法

本文转自http://www.oschina.net/code/snippet_127872_6370 PHP POST数据的三种方法 php有三种方法可以post数据,分别为Curl、socket、file_get_contents: /** * Socket版本 * 使用方法: *...

2012-02-06 13:10:04

阅读数 1562

评论数 0

原创 深入理解PHP中的变量

PHP中的变量是弱类型的,这一点大家都知道,实现弱类型的方式使用的一个联合体来表示的,实际的源代码如下: typedef union _zvalue_value { long lval; /* long value */ double dval; /* double value...

2012-01-31 11:30:56

阅读数 469

评论数 0

原创 PHP中根据汉字返回拼音

在一个项目中需要根据汉字的拼音顺序排列用户的名字,所以在网上搜索了一下有关的资料,实现整理如下: <?php function Pinyin($_String, $_Code='utf-8') { $_DataKey ="a|ai|an|ang|ao...

2012-01-30 17:34:08

阅读数 2267

评论数 0

原创 C语言使用正则筛选字符串

char string[512]; char digit[512]; sscanf("dfdfdf100ghghjsdfsd", "%[a-z]%[0-9]", string, digit); printf("%s", string);...

2012-01-30 16:03:04

阅读数 1667

评论数 0

原创 vim学习笔记

首先安装vim,接着进行最基本命令的联系。 在命令行模式下输入   vimtutor   会打开一个文档,按照文档上的步骤进行最基本的使用练习。 1、查看文档编码: 打开一个在windows下的文本时中文显示乱码,于是网上搜了一下, 首先是查看编码:        :set fileen...

2012-01-02 17:02:35

阅读数 540

评论数 0

原创 kohana中在ORM中组装比较复杂的SQL

随机获取数据:         这里需要使用MySQL的rand函数,在kohana中使用MySQL的函数需要这样: DB::expr('rand()');,这里以一篇文章有多个评论的ORM关系来做例子,代码类似下面这样        $article_model->...

2011-11-30 16:47:33

阅读数 2416

评论数 0

原创 Kohana的ORM多对多关系的用法总结

之前一直没有好的使用多对多例子,所以也一直没有总结,现在有一个好的例子,那就文章的标签与文章的关系,一篇文章可以有多个标签,一个标签也可以存在于多篇文章中,这是一个比较好的运用多对多的例子, 首先是数据库的设计,多对多需要一个中间数据库表来将两个表来联系起来。数据库设计如下: pre_arti...

2011-11-30 16:36:41

阅读数 1850

评论数 1

原创 lamp配置的相关指令

首先安装LAMP,指令如下 $ sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server 创建虚拟主机用于实现域名访问多个网站,这里以创建kohana项目为例,拷贝apache综合中的默认配置用于修...

2011-11-29 09:46:06

阅读数 446

评论数 0

原创 .htaccess文件详解

概述:其实.htaccess文件相当于是从http.conf文件继承的文件,只是作用的范围不一样,http.conf的配置作用于服务器上的所有网站,.htaccess只作用于其定义的文件夹下。.htaccess文件主要用于一个服务器下有多个站点,每个站点的配置又不一样的情况下。 理论上说,使用....

2011-11-14 10:15:40

阅读数 650

评论数 0

原创 PHP 循环的写法对性能的影响

看过一个博客讨论计算机的体系结构对程序性能的影响,源程序是使用.net写的,我想测试一下PHP是和这种情况一致,下面是程序的源码部分: <?php $n = 1<<10; $arr = array(); for($x = 0; $x < $n; $x++){ ...

2011-11-11 22:17:52

阅读数 966

评论数 0

原创 kohana中的路由规则

Kohana的路由规则是非常强大的。首先必须确认的是路由的匹配原则是有顺序,当一条路由规则匹配成功时,就停止匹配,也就是说在其后面定义的路由规则将不再被执行,因此最后的一条路由规则几乎可以匹配所有的路由规则,它常常类似于下面这样: 在bootstrap.php文件中: Route::set(&...

2011-11-04 16:09:56

阅读数 5905

评论数 1

原创 SQL 实现阶段性统计用于阶段性排行榜

这个功能主要用于月销售排行,周销售排行等。 用到的SQL语句 INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]     [INTO] tbl_name [(col_name,...)]     SELECT ......

2011-11-02 15:00:27

阅读数 635

评论数 0

转载 30个最常用CSS选择器解析

注:本文转载自伯乐在线   你也许已经掌握了id、class、后台选择器这些基本的css选择器。但这远远不是css的全部。下面向大家系统的解析css中30个最常用的选择器,包括我们最头痛的浏览器兼容性问题。掌握了它们,才能真正领略css的巨大灵活性。 1. * 代码: * { ...

2011-10-23 20:25:39

阅读数 306

评论数 0

原创 Kohana中ORM对象关系的用法

Kohana的ORM支持4中类型的对象关系: belongs_to(多对一), has_many(一对多), has_many "through"(多对多)和 has_one(一对一).  belongs_to(多对一): 关系举例:"child"属于...

2011-10-18 22:16:30

阅读数 1629

评论数 0

原创 PHP解决搜索时在URL地址栏输入中文字符搜索结果出现乱码

这个问题的出现的前提是本站代码采用utf-8格式,当页面停留在搜索页面时,在浏览器的地址栏输入中文的关键字进行搜索时会出现乱码,在网上查找资料说明,是因为浏览器默认将url中的中文字符编码为gb2312格式,而我的程序中的文件编码是使用的utf-8的格式,所以才会出现这个问题,但

2011-10-18 09:07:15

阅读数 3345

评论数 2

原创 Kohana 中ORM模块的使用(基础用法)

感觉Kohana中的ORM还是做的很不错的,但是很多地方还是不太会用,查看文档便看翻译整理一下具体的用法。(备注:这些方法只适用于Kohana3.2,Kohana3.1的版本和3.2的版本差别还是比较大的) 首先创建一个Model: <?php class Model_U

2011-08-12 18:03:12

阅读数 3931

评论数 0

原创 PHP 与SQL语句的转换

PHP中的数组功能非常强大,在很多的PHP框架中将也将SQL中的WHERE语句作为数组来传入,下面是其中的一种解析方式     public static function where($where){if (is_string($where) && $where){ret

2011-04-06 12:08:00

阅读数 553

评论数 0

原创 ADT实现的改进

在前面关于ADT堆栈、队列、二叉搜索树的实现都是简单的实现方式,目的是对这几种常见的ADT有一个实现方式的认识,在实际的编程中,前面的几种实现方式限制太多,最主要的一个问题是它们把用于保存结构的内存和那些用于操纵它们的函数都封装在一起了,如果一个程序需要不止一个的堆栈,那么这种封

2010-12-01 13:52:00

阅读数 478

评论数 0

原创 二叉搜索树-链式结构实现方式

实际上链式结构才是实现二叉树最常用的存储形式,它解决了数组存储中非常大的空间浪费,而且链式结构也非常符合二叉树的表现形式。下面是链式结构中常见的节点结构: typedef   struct  TreeNode { TREE_TYPE    value;

2010-11-30 17:26:00

阅读数 562

评论数 0

原创 二叉搜索树-数组的实现方式

树是一种相对比较复杂的数据结构,它要么为空,要么具有一个值并具有零个或多个孩子,每个孩子本身就是树,这是一个递归的定义,二叉树是树的一种特殊形式,也是数据结构中最常用到的形式,二叉树又可以根据左右孩子节点与跟节点的大小关系分为很多种,这里以二叉搜索树为例学习,二叉搜索树有一个额外

2010-11-28 17:55:00

阅读数 1843

评论数 2

原创 队列

队列的特点就不需要再多说了,用于执行元素的插入和删除的函数并没有一个被普遍认可的名字,所以我们将使用insert和delete这个两个名字,并且也没有规定插入到底是在对头还是队尾,总之就是插入和删除各在一头,但是为了现实中的队列相吻合往往比较容易记忆,所以这里同一使用在队尾插入元

2010-11-26 17:04:00

阅读数 819

评论数 0

原创 堆栈

基本的堆栈操作通常被称为push和pop,push就是把一个新值压入堆栈的顶部,pop就是把堆栈顶部的值移出堆栈并返回这个值,堆栈只提供对它顶部值的访问。还有另一种堆栈接口提供top操作,top操作返回顶部元素的值,但它并不把顶部元素从堆栈中移除。因此使用top操作可以反复取得栈

2010-11-25 17:51:00

阅读数 1112

评论数 0

原创 抽象数据类型

经典的抽象数据类型包括:链表、堆栈、队列和树,这些数据结果在编程中的应用是非常广泛的,需要一项一项的学精学透。 所有的抽象数据类型都必须先确定一件事情,那就是如何获取内存来存储值。有三种可选方案:   静态数组:缺点——静态数组要求结构的长度固定,而且这个长度必须在编译时确

2010-11-25 17:27:00

阅读数 405

评论数 0

原创 使用插入排序实现qsort函数(练习)

插入排序的方法就不需要详细介绍了,这次主要使用插入排序实现C语言标准函数库中的qsort函数,函数的原型和qsort一样就是实现给定数组的排序,并且排序和数组中元素的类型无关,这样任何数组都可以使用这个排序算法,函数的原型如下: void   insertion_sort( v

2010-11-25 17:02:00

阅读数 776

评论数 0

原创 信号

程序常常在运行时会遇到并不是因为程序运行本身所引发的事件,比如说用户突然中断了程序的运行,因此程序也不得不终止,但是有一部分已经计算好的结果不想丢弃这样就需要在程序退出时保存这些数据,因此程序必须对此类事件做出反映。虽然他并没有办法预测这种情况会在什么时候发生。       信

2010-11-24 14:42:00

阅读数 320

评论数 0

原创 输入输出函数

在系统学习输入输出函数之前,首先了解一个 stdio.h 头文件。 头文件stdio.h包含了标准库函数的I/O部分的声明 流的概念:就C语言而言,所有的I/O操作只是简单的从程序中移进移出字节的事情,因此这种字节流杯称为流,程序只需关心创建正确的输出字节数据,以及正确的解释

2010-11-15 17:43:00

阅读数 966

评论数 0

原创 预处理器--宏(练习)

1、编写一个用于调试的宏,打印出任意的表达式,它被调用时应该接受两个参数。第一个是printf格式码,第二个是需要打印的表达式。下面的宏在此基础上做了一下扩充(同时打印出文件名和行号):        #define    DEBUG_PRINT(fmt,value)

2010-11-14 18:49:00

阅读数 296

评论数 0

原创 宏与函数

宏与函数的一些优劣 一般宏用于执行简单的运算,例如: #define   MAX(a,b)       ((a) > (b) ? (a) : (b)) 这种情况下使用宏比使用函数要好,原因有两点: 1、调用函数要消耗系统一定的额外时间,执行额外的代码(保护处理器现场、数据

2010-11-14 15:40:00

阅读数 412

评论数 0

原创 预处理器(#define)

#define宏的一些用法        首先让我们来查看这个预处理指令更为正式的描述:      #define  name  stuff      有了这条指令以后,每当有符号 name出现在这条指令的后面时,预处理器就会把它替换成stuff。      我们常常使

2010-11-12 17:55:00

阅读数 742

评论数 0

原创 利用转换表判断字符的类型(练习)

题目:编写一个程序,从标准输入读取一些字符,并根据字符的分类计算各类字符的百分比。   要求:不能使用一系列的if语句,字符判断可以使用ctype.h头文件中定义的函数。   代码 #include #include #include /*各种判断字符类型的函数均

2010-11-12 11:41:00

阅读数 423

评论数 0

原创 命令行参数及字符串常量

命令行参数是C语言中指向指针的指针的另一个用武之地,很多的操作系统都允许用户在命令行中编写参数来启动一个应用程序的执行,这些参数被传递给程序,程序按照他认为合适的任何方式对它们进行处理。       我们首先来研究一下C语言中main函数的参数,main函数有两个参数,argc

2010-11-11 18:28:00

阅读数 585

评论数 0

原创 函数指针应用

通过上一节对复杂声明的分析接触到了函数指针这个东西,实际上函数指针和其他的指针一样,在使用时也是要先进行初始化的,函数指针的初始化方法例如下:          int   f( int value );          int    (*pf)( int va ) =

2010-11-10 17:46:00

阅读数 324

评论数 1

提示
确定要删除当前文章?
取消 删除