一个用来打印log的脚本 现在在公司里做Tracking的工作,在开发环境下,Tracking的log文件保存在服务器的/mezi/sites/apache/logs下,然后又根据网站的不同有着下面这样的格式:{site_name}_{machine_name}_YYYY_MM_DD_HH_xx.tracking.log从文件格式来看,是每小时生成一个log文件,但是有些站点会每10分钟生成一个log文件,而服务器
PHP遍历文件夹 这个算是一个经典的PHP笔试题了,之前在网上看到的答案都是用PHP的库函数来实现的,今天就花了点时间用SPL来完成。基本的注释都在代码里,估计一看就明白。<?phprequire_once 'function.php';class DirectoryTraverser { // 当前目录 protected $_directory; // 深度 pro
关于PHP不写闭合标签 最早开始写PHP代码的时候,我是要写PHP闭合标签的,之后在满星这几年,习惯改了,不再写PHP标签了。最早这个概念是从Drupal中接触到的,一开始有点不习惯——为什么不写闭合标签呢?这感觉很不完美啊,对于有强迫症的人来说很不适应嘛!后来,在工作中碰到了因为标签闭合而引起的问题,才开始不写闭合标签。对于纯PHP文件,不写封闭标签的原因是因为防止在封闭标签之后有多余的空格、制表符等,在渲
PHP设计模式——单例模式 写了那么多年的代码,从来没有好好地写过笔记做过积累,一直在被业务给牵着跑,不得不说是个遗憾。现在开始要多复习、多学习,让自己迅速成长起来。在设计模式中,我个人觉得单例模式是最简单、最好理解的一种,不过由于PHP的特殊性,PHP的单例模式只是在一次请求中才是有效的。看看单例模式的实现代码先:<?phpclass Singleton { protected static $_
三复习PHP的排序 晚上把插入排序和选择排序用PHP代码实现了一遍。插入排序:<?phprequire "function.php";function insert_sort($array) { $size = count($array); if ($size <= 1) { return $array; } for ($i=1; $i<$size; $
再复习PHP的排序 早上起来,花了点时间写了一下PHP的冒泡排序和快速排序,作为对以前知识的复习。冒泡排序:<?function bubble_sort($array) { $size = count($array); if ($size <= 1) { return $array; } for ($i=0; $i<$size; $i++) {
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
关于PHP的排序,还有其他的办法吗? 排序,计算机科学中最常见的问题,面试的时候经常问到,如果要自己实现排序算法,肯定是可以的,只是需要一点时间而已,使用PHP自带的函数来进行排序,那自然是更加方便,各种sort用起来真是八仙过海各显神通;但是除了各种sort之外,还有其他的办法吗?今天看了一点PHP SPL的内容,于是就找到了数据结构中一个非常有用的东西:堆。在SPL提供的堆数据结构中,有SplHeap、SplMaxHeap
使用PHP模拟post提交数据 这也是个老生常谈的话题了,上午花了点时间把这个问题整理了一下。一般来说用PHP来模拟post提交数据有三种方法,file_get_contents、curl和socket。写了个公用函数,专门用来打印post数据:<?phpfunction pr() { $params = func_get_args(); foreach ($params as $key => $v
老生常谈cookie跨域 很早之前就做过跨域设置cookie的项目了,但是以前没有做好积累,今晚花了点时间重新复习一下。OK,有两个域名,www.a.com和www.b.com,现在要通过a网站来设置b网站下的cookie。a网站下setcookie.php的代码: Cookie Cross Domain test
关于http和https的区别 转载自:http://blog.163.com/hello_world_wusu/blog/static/171573116201092691540946/HTTP超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准,设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法
写了个最简单的jQuery插件 每天都要学习到新的东西,才算是有意义的,以前的我真是在浪费青春。今天把jQuery插件开发看了一下,写了一个最简单的,给一个元素内部用strong标签包上。HTML源码: jQuery plugins Hello, world! Hello, jQuery! Hello, jQuery plugins!插
约瑟夫问题 约瑟夫问题也就是猴子找大王问题,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只
关于PHP的file_get_contents的问题 以前在做Smarter US的时候,在请求API时,直接使用PHP的file_get_contents函数:$xml = file_get_contents($url);结果返回的XML内容为空,跟API那边的人沟通过之后也没有确认到底是什么原因,后来换成用cURL之后,就返回了正常的XML内容,当时也没有去关注这到底是为什么,今天再来回想一下,在Stack Overflow上找到了这个结
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
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_
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):
为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
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
根据字符串名称动态调用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