- 博客(38)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 提问的智慧
==== 简介 ==== 在黑客世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案。 首先你必须明白,黑客们只偏爱艰巨的任务,或者能激发他们思维的好问题。如若不然,我们还来干吗?如果你有值得我们反复咀嚼玩味的好问题,我们自会对你感激不尽。好问题是激励,是厚礼,可以提
2008-02-27 22:44:00
641
原创 一个用来打印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
1535
原创 PHP遍历文件夹
这个算是一个经典的PHP笔试题了,之前在网上看到的答案都是用PHP的库函数来实现的,今天就花了点时间用SPL来完成。基本的注释都在代码里,估计一看就明白。<?phprequire_once 'function.php';class DirectoryTraverser { // 当前目录 protected $_directory; // 深度 pro
2013-05-04 17:50:37
1026
原创 关于PHP不写闭合标签
最早开始写PHP代码的时候,我是要写PHP闭合标签的,之后在满星这几年,习惯改了,不再写PHP标签了。最早这个概念是从Drupal中接触到的,一开始有点不习惯——为什么不写闭合标签呢?这感觉很不完美啊,对于有强迫症的人来说很不适应嘛!后来,在工作中碰到了因为标签闭合而引起的问题,才开始不写闭合标签。对于纯PHP文件,不写封闭标签的原因是因为防止在封闭标签之后有多余的空格、制表符等,在渲
2013-05-01 21:29:18
3415
2
原创 PHP设计模式——单例模式
写了那么多年的代码,从来没有好好地写过笔记做过积累,一直在被业务给牵着跑,不得不说是个遗憾。现在开始要多复习、多学习,让自己迅速成长起来。在设计模式中,我个人觉得单例模式是最简单、最好理解的一种,不过由于PHP的特殊性,PHP的单例模式只是在一次请求中才是有效的。看看单例模式的实现代码先:<?phpclass Singleton { protected static $_
2013-04-30 19:52:25
650
原创 三复习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
624
原创 再复习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
530
原创 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
1966
原创 关于PHP的排序,还有其他的办法吗?
排序,计算机科学中最常见的问题,面试的时候经常问到,如果要自己实现排序算法,肯定是可以的,只是需要一点时间而已,使用PHP自带的函数来进行排序,那自然是更加方便,各种sort用起来真是八仙过海各显神通;但是除了各种sort之外,还有其他的办法吗?今天看了一点PHP SPL的内容,于是就找到了数据结构中一个非常有用的东西:堆。在SPL提供的堆数据结构中,有SplHeap、SplMaxHeap
2013-04-13 19:22:24
1188
原创 使用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
37960
原创 老生常谈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
4296
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
628
原创 写了个最简单的jQuery插件
每天都要学习到新的东西,才算是有意义的,以前的我真是在浪费青春。今天把jQuery插件开发看了一下,写了一个最简单的,给一个元素内部用strong标签包上。HTML源码: jQuery plugins Hello, world! Hello, jQuery! Hello, jQuery plugins!插
2013-04-11 20:26:28
701
原创 约瑟夫问题
约瑟夫问题也就是猴子找大王问题,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
545
原创 关于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
1634
原创 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
19390
原创 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
1018
原创 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
3772
原创 为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
2106
原创 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
1778
原创 根据字符串名称动态调用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
30091
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
3275
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
3553
原创 清理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
723
原创 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
5426
原创 .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
2973
原创 封装一下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
1446
原创 输出CSV文件在Excel2003/2007/2010下乱码的问题
总之就在输出CSV之前插入下面的代码就好了。fwrite($buffer, "\xEF\xBB\xBF");
2012-12-29 22:35:44
1744
原创 [Ubuntu]记录一下Ubuntu下的Vim设置
昨天晚上在家里更新了Ubuntu,也把Vim全部更新了下来,并做了一些符合自己习惯的设置。今天整理了一下,记录下来留作备忘。 我在/etc/vim/文件夹下创建了两个文件:vim.local和gvim.local,这两个文件的内容是一样的,有点冗余了是不?嗯,没办法,因为我不知道vim.local这个文件会不会被Gvim加载,所以就创建了两个内容完全一样的文件。下面是文件中的内容:
2009-01-21 13:07:00
2176
原创 社区里某位同志写的一个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
1486
原创 用PHP写的一个文本处理小程序
以前用Python写了一个处理SQL文件的小程序,今天也同样碰到了一个类似的要求,不过处理的对象是PHP文件,于是就用PHP写了一个处理程序。问题的描述如下:被处理的文件的文件名类似于{$channel_id}_{$category_id}.php,所有文件内都包含一个Array变量,文件结构类似于下面:<?php$arrLeftMoreInfo = array (
2008-06-16 15:40:00
1934
1
转载 职业生涯中12种最致命的想法
1、总觉得自己不够好 这种人虽然聪明、有历练,但是一旦被提拔,反而毫无自信,觉得自己不胜任。此外,他没有往上爬的野心,总觉得自己的职位已经太高,或许低一两级可能还比较适合。这种自我破坏与自我限制的行为,有时候是无意识的。但是,身为企业中、高级主管,这种无意识的行为却会让企业付出很大的代价。2、非黑即白看世界这种人眼中的世界非黑即白。他们相信,一切事物都应该像有标准答案的考试一样
2008-03-12 13:58:00
537
原创 人生的第一个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
681
原创 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
826
原创 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
676
转载 MySQL优化的8条经验
1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6) 就可以很好的完成任务了。
2008-03-01 11:45:00
630
原创 在项目中用到的一些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
555
原创 以前收藏的一些代码
现在在CSDN开技术博客,收藏代码,记录学习。1、fgetcsv()函数在Linux上的一个Bug以及解决方案fgetcsv()在 Linux上有个Bug(该PHP版本未知),就是当csv文件中出现首字是multi-byte的文字时,会将第一个字符的高位去掉,结果造成读入的文件全部乱码。解决方案:使用PHP重写fgetcsv()函数。代码如下: /** * ファイルポイ
2008-02-01 09:43:00
686
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人