自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CaiKnife的专栏

一颗浑身都是刺的仙人掌

  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

转载 提问的智慧

  ==== 简介 ====  在黑客世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案。  首先你必须明白,黑客们只偏爱艰巨的任务,或者能激发他们思维的好问题。如若不然,我们还来干吗?如果你有值得我们反复咀嚼玩味的好问题,我们自会对你感激不尽。好问题是激励,是厚礼,可以提

2008-02-27 22:44:00 639

原创 一个用来打印log的脚本

现在在公司里做Tracking的工作,在开发环境下,Tracking的log文件保存在服务器的/mezi/sites/apache/logs下,然后又根据网站的不同有着下面这样的格式:{site_name}_{machine_name}_YYYY_MM_DD_HH_xx.tracking.log从文件格式来看,是每小时生成一个log文件,但是有些站点会每10分钟生成一个log文件,而服务器

2013-05-23 14:59:43 1531

原创 PHP遍历文件夹

这个算是一个经典的PHP笔试题了,之前在网上看到的答案都是用PHP的库函数来实现的,今天就花了点时间用SPL来完成。基本的注释都在代码里,估计一看就明白。<?phprequire_once 'function.php';class DirectoryTraverser { // 当前目录 protected $_directory; // 深度 pro

2013-05-04 17:50:37 1021

原创 关于PHP不写闭合标签

最早开始写PHP代码的时候,我是要写PHP闭合标签的,之后在满星这几年,习惯改了,不再写PHP标签了。最早这个概念是从Drupal中接触到的,一开始有点不习惯——为什么不写闭合标签呢?这感觉很不完美啊,对于有强迫症的人来说很不适应嘛!后来,在工作中碰到了因为标签闭合而引起的问题,才开始不写闭合标签。对于纯PHP文件,不写封闭标签的原因是因为防止在封闭标签之后有多余的空格、制表符等,在渲

2013-05-01 21:29:18 3411 2

原创 PHP设计模式——单例模式

写了那么多年的代码,从来没有好好地写过笔记做过积累,一直在被业务给牵着跑,不得不说是个遗憾。现在开始要多复习、多学习,让自己迅速成长起来。在设计模式中,我个人觉得单例模式是最简单、最好理解的一种,不过由于PHP的特殊性,PHP的单例模式只是在一次请求中才是有效的。看看单例模式的实现代码先:<?phpclass Singleton { protected static $_

2013-04-30 19:52:25 645

原创 三复习PHP的排序

晚上把插入排序和选择排序用PHP代码实现了一遍。插入排序:<?phprequire "function.php";function insert_sort($array) { $size = count($array); if ($size <= 1) { return $array; } for ($i=1; $i<$size; $

2013-04-15 19:09:16 620

原创 再复习PHP的排序

早上起来,花了点时间写了一下PHP的冒泡排序和快速排序,作为对以前知识的复习。冒泡排序:<?function bubble_sort($array) { $size = count($array); if ($size <= 1) { return $array; } for ($i=0; $i<$size; $i++) {

2013-04-15 09:41:31 529

原创 SplFixedArray和Array的性能测试

部分参考自:http://www.php.net/manual/zh/class.splfixedarray.phpPHP文档专门说明:The SplFixedArray class provides the main functionalities of array. The main differences between a SplFixedArray and a normal PH

2013-04-13 20:16:59 1963

原创 关于PHP的排序,还有其他的办法吗?

排序,计算机科学中最常见的问题,面试的时候经常问到,如果要自己实现排序算法,肯定是可以的,只是需要一点时间而已,使用PHP自带的函数来进行排序,那自然是更加方便,各种sort用起来真是八仙过海各显神通;但是除了各种sort之外,还有其他的办法吗?今天看了一点PHP SPL的内容,于是就找到了数据结构中一个非常有用的东西:堆。在SPL提供的堆数据结构中,有SplHeap、SplMaxHeap

2013-04-13 19:22:24 1187

原创 使用PHP模拟post提交数据

这也是个老生常谈的话题了,上午花了点时间把这个问题整理了一下。一般来说用PHP来模拟post提交数据有三种方法,file_get_contents、curl和socket。写了个公用函数,专门用来打印post数据:<?phpfunction pr() { $params = func_get_args(); foreach ($params as $key => $v

2013-04-13 12:03:25 37937

原创 老生常谈cookie跨域

很早之前就做过跨域设置cookie的项目了,但是以前没有做好积累,今晚花了点时间重新复习一下。OK,有两个域名,www.a.com和www.b.com,现在要通过a网站来设置b网站下的cookie。a网站下setcookie.php的代码: Cookie Cross Domain <!-- --> test <!--

2013-04-12 22:50:18 4277 1

转载 关于http和https的区别

转载自:http://blog.163.com/hello_world_wusu/blog/static/171573116201092691540946/HTTP超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准,设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法

2013-04-12 18:13:30 624

原创 写了个最简单的jQuery插件

每天都要学习到新的东西,才算是有意义的,以前的我真是在浪费青春。今天把jQuery插件开发看了一下,写了一个最简单的,给一个元素内部用strong标签包上。HTML源码: jQuery plugins Hello, world! Hello, jQuery! Hello, jQuery plugins!插

2013-04-11 20:26:28 698

原创 约瑟夫问题

约瑟夫问题也就是猴子找大王问题,Wiki上有详细的分析:https://zh.wikipedia.org/wiki/%E7%BA%A6%E7%91%9F%E5%A4%AB%E6%96%AF%E9%97%AE%E9%A2%98。而代码实现起来也很简单:<?php/* * 一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只

2013-04-11 09:53:59 542

原创 关于PHP的file_get_contents的问题

以前在做Smarter US的时候,在请求API时,直接使用PHP的file_get_contents函数:$xml = file_get_contents($url);结果返回的XML内容为空,跟API那边的人沟通过之后也没有确认到底是什么原因,后来换成用cURL之后,就返回了正常的XML内容,当时也没有去关注这到底是为什么,今天再来回想一下,在Stack Overflow上找到了这个结

2013-04-10 19:23:14 1631

原创 MongoDB中关于group的用法

最近在阅读《MongoDB权威指南》,http://book.douban.com/subject/6068947/,在看到聚合这一章的group部分时,范例程序在我的机器上运行的结果为空,因此我稍微研究了一下。这本书上的MongoDB版本是1.6.0,我自己的机器是Ubuntu 12.04 x64,MongoDB版本是2.0.4。下面是书上的测试数据:db.stocks.inse

2013-04-09 18:03:00 19370

原创 Sublime Text 2设置

用户设置{ "bold_folder_labels": true, "color_scheme": "Packages/Color Scheme - Default/Cobalt.tmTheme", "detect_slow_plugins": false, "draw_minimap_border": true, "font_face": "Consolas", "font_

2013-03-20 15:39:16 1016

原创 Python新式类多重继承时的顺序

#!/usr/bin/python#coding: UTF-8"""@author: CaiKnife"""class A(object): def __init__(self): super(A, self).__init__() print "A!"class B(object): def __init__(self):

2013-02-13 11:57:32 3770

原创 为Python2.6的单元模块unittest做hack

我在Windows上开发Python用的版本是2.7,在Ubuntu上开发的版本是2.6,而在Python的unittest模块中,有几个方法是在2.7才有的,它们是:MethodChecks thatNew inassertEqual(a,b)a ==b assertNotEqual(a,b)a !=b

2013-01-31 17:06:48 2104

原创 Python的单例模式

#!/usr/bin/python#coding: UTF-8"""@author: CaiKnifeSingleton"""from functools import wraps# 使用__new__方法构造单例类class Singleton(object): def __new__(cls, *args, **kwargs): if not has

2013-01-31 09:26:44 1776

原创 根据字符串名称动态调用Python的函数和对象方法

#!/usr/bin/python#coding: UTF-8"""@author: CaiKnife根据函数名称动态调用"""def do_foo(): print "foo!"def do_bar(): print "bar!"class Print(): def do_foo(self): print "foo!" d

2013-01-28 10:02:51 30074 3

原创 使用装饰器为Python函数做缓存

写了个函数作为装饰器为Fibonacci数列做缓存,做了一下性能比较。#!/usr/bin/python# coding: UTF-8import datetimenow = datetime.datetime.nowfrom functools import wrapsdef cache(func): caches = {} @wraps(func)

2013-01-13 19:51:07 3254 1

原创 写了个清理新浪微博页面的油猴子脚本

// ==UserScript==// @name ck-weibo// @namespace CK-WEIBO// @description 写着玩儿~// @include http://weibo.com/*// @version 1// @require http://code.jquery.com/jquery-1.8.3.min.j

2013-01-12 19:48:04 3542

原创 清理SVN信息的Python脚本

import os, sys, shutil, statdef main(): base_name = os.path.basename(__file__) if len(sys.argv) == 1: print "Format: %s %s" % (base_name, 'path_to_clear') sys.exit()

2013-01-10 20:37:18 719

原创 Python新式类和经典类的区别

class ClassicClass(): passclass NewStyleClass(object): passx1 = ClassicClass()x2 = NewStyleClass()print x1.__class__, type(x1)print x2.__class__, type(x2)输出结果:__main__.ClassicC

2013-01-07 11:53:07 5403

原创 .gitconfig alias设置

[alias] co = checkout ci = commit st = status br = branch hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short type = cat-file -t dump = cat-file -p

2012-12-31 17:15:55 2965

原创 封装一下CakePHP的Model,增加链式操作

class AppModel extends Model { public function save($data=null, $validate=true, $fieldList=array()) { if (isset($this->data) && isset($this->data[$this->name])) { unset($this->data[$this->name][

2012-12-30 12:48:14 1441

原创 输出CSV文件在Excel2003/2007/2010下乱码的问题

总之就在输出CSV之前插入下面的代码就好了。fwrite($buffer, "\xEF\xBB\xBF");

2012-12-29 22:35:44 1741

原创 [Ubuntu]记录一下Ubuntu下的Vim设置

昨天晚上在家里更新了Ubuntu,也把Vim全部更新了下来,并做了一些符合自己习惯的设置。今天整理了一下,记录下来留作备忘。 我在/etc/vim/文件夹下创建了两个文件:vim.local和gvim.local,这两个文件的内容是一样的,有点冗余了是不?嗯,没办法,因为我不知道vim.local这个文件会不会被Gvim加载,所以就创建了两个内容完全一样的文件。下面是文件中的内容:

2009-01-21 13:07:00 2167

原创 社区里某位同志写的一个FTP内容抓取程序

程序演示 http://labs.phpz.org/ftplist/源代码如下:<?php$info = array ( user => username, pass => password, host => ftp host, port => 21, path => ,

2008-06-17 10:02:00 1482

原创 用PHP写的一个文本处理小程序

以前用Python写了一个处理SQL文件的小程序,今天也同样碰到了一个类似的要求,不过处理的对象是PHP文件,于是就用PHP写了一个处理程序。问题的描述如下:被处理的文件的文件名类似于{$channel_id}_{$category_id}.php,所有文件内都包含一个Array变量,文件结构类似于下面:<?php$arrLeftMoreInfo = array (

2008-06-16 15:40:00 1925 1

转载 职业生涯中12种最致命的想法

1、总觉得自己不够好 这种人虽然聪明、有历练,但是一旦被提拔,反而毫无自信,觉得自己不胜任。此外,他没有往上爬的野心,总觉得自己的职位已经太高,或许低一两级可能还比较适合。这种自我破坏与自我限制的行为,有时候是无意识的。但是,身为企业中、高级主管,这种无意识的行为却会让企业付出很大的代价。2、非黑即白看世界这种人眼中的世界非黑即白。他们相信,一切事物都应该像有标准答案的考试一样

2008-03-12 13:58:00 530

原创 人生的第一个Python程序

今天因为给BeauBeau提供的抽奖号码做SQL文件,一开始收到ZIP文件解开压缩之后被吓到了——29个CSV文件,每个文件保存了1000个奖券ID和号码-_-!照上次一样,打开每个CSV文件做先做单独的SQL文件,每个SQL中有1000条插入语句,随后将29个文件的所有SQL语句都复制粘贴到同一个总的SQL文件中。CSV文件中的结构是“ID,NUMBER”的结构,其中ID是7位数字,NU

2008-03-11 17:30:00 672

原创 CakePHP中的scriptaculous(1)

CakePHP中有个Ajax的Helper类,用于处理CakePHP的Ajax功能。由于CakePHP是模仿Ruby on Rails的快速开发框架,所以它也和RoR一样,使用了prototype和scriptaculous来作为它的Ajax库。 下面就几个简单的例子来解析CakePHP 的功能,这次解析基于 http://nio.infor96.com/ajax-in-cakephp/以

2008-03-09 16:30:00 820

原创 PHP速率优化技巧

1.在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题; 2.尽量的少进行文件操作,虽然PHP的文件操作效率也不低的; 3.优化SELECT SQL语句,在可能的情况下尽量少的进行

2008-03-01 12:20:00 670

转载 MySQL优化的8条经验

1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6) 就可以很好的完成任务了。

2008-03-01 11:45:00 623

原创 在项目中用到的一些JS代码

1、禁用页面某些输入框里的右键菜单和Ctrl+V操作Array.prototype.each=function(iterator){    for(var i=0;ithis.length;i++){        try{            iterator(this[i]);        }        catch(e){                    }    }

2008-02-20 17:59:00 550

原创 以前收藏的一些代码

现在在CSDN开技术博客,收藏代码,记录学习。1、fgetcsv()函数在Linux上的一个Bug以及解决方案fgetcsv()在 Linux上有个Bug(该PHP版本未知),就是当csv文件中出现首字是multi-byte的文字时,会将第一个字符的高位去掉,结果造成读入的文件全部乱码。解决方案:使用PHP重写fgetcsv()函数。代码如下: /** * ファイルポイ

2008-02-01 09:43:00 681

Hacking Gmail

Hacking Gmail

2007-08-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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