自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zHHHe的专栏

不要懒惰。

  • 博客(36)
  • 资源 (2)
  • 收藏
  • 关注

原创 CSDN博客迁移到markdown博客系统的工具

这两年用Markdown格式来书写的静态博客系统多了起来,例如Jekyll,Octopress,Hexo,以及中文的如简书等。我也有了将博客迁移到Markdown下的想法,一是因为文章能很好的做备份,本来就是静态文件嘛,二是因为例如csdn一类的博客,写文章时用的编辑器不好用,不如直接写markdown格式来的方便,而且写完之后csdn呈现的效果也远不如那些markdown系统的站点。

2014-09-19 01:01:14 3985 1

原创 理解Flight框架核心

Flight框架是一个微型的PHP框架,它简单,快速,可扩展。虽然它一个微型的框架,但我在阅读Flight代码的过程中,感到了它设计和构思独特而精妙的地方,觉得有学习的价值,便决定做一下整理分享出来。

2014-09-07 02:29:51 4836

翻译 Flight框架中文文档

Flight(官网)是一个快速,简单,可扩展的微型PHP框架。文档地址:https://github.com/baizhebz/flight-doc-cn由于文档是Markdown格式编写的,而CSDN Blog并不支持这种格式,就不把文档内容搬过来了。

2014-09-04 13:12:20 5244

原创 浅析CodeIgniter框架工作原理

CodeIgniter是一个流行的PHP框架,小巧但功能强大,

2014-08-26 23:15:43 4084

原创 Composer中的自动加载

Composer是PHP的一个包依赖管理工具,类似Ruby中的RubyGems或者Node中的NPM,它并非官方,但现在已经非常流行。在此并不介绍如何使用Composer,来看看有关它autoload的内容吧。举个栗子,假设我们的项目想要使用monolog这个日志工具,就需要在composer.json里告诉composer我们需要它:{ "require": { "monolog/

2014-08-17 22:47:42 9217 1

原创 PHP PSR-4与PSR-0规范

在上一篇文章中,介绍了PSR-0和autoload相关的内容。继PSR-0这个PHP自动加载的规范之后,PHP-FIG又推出了一个PSR-4,称为改进的autoload规范。在此不详谈两者的定义了。在PSR-0中,\Symfony\Core\Request会被转换成文件系统的/path/to/project/lib/vendor/Symfony/Core/Request.php这个路径。PSR

2014-08-16 22:35:10 16238 1

原创 PHP的PSR-0标准利用namespace来做autoloading

介绍PSR-0之前,先来说说命名空间(NameSpace)和Auto

2014-08-13 13:31:50 6989

原创 利用浏览器控制台(Console)进行PHP Debug

当我们的PHP程序Debug时,比较常用的方式是将变量的信息打印到浏览器中,例如这样:<?phpecho '';print_r($bar);echo '';exit;可是直接打印出来有可能会干扰你的页面,打乱布局,影响作为Api返回的数据等问题。这时我们可以采取将调试信息输出到文件的方式,如下是最简单的例子:error_log(print_r($bar, true));可是

2014-03-22 17:21:01 53833 1

原创 解决windows下Composer因php_openssl扩展缺失而安装失败的问题

Composer(https://getcomposer.org/)是PHP下的一个依赖管理工具。你可以在你的项目中声明你所需要用到的类库,然后Composer会在项目中为你安装它们。如果你了解Node的npm或者Ruby的Bundler,就理解它是做什么的了,但是,它不是包管理器。在Windows的Wamp环境下安装Composer(注:Composer要求PHP版本在5.3.2+)

2014-03-17 22:56:08 14061 2

原创 简单且强大的PHP调试工具 Kint

介绍给大家一个很好用的PHP DEBUG工具---Kint http://raveren.github.io/kint/,在它的主页上你几乎能获取所有关于它的信息了,我在这里只是对这个工具及其使用做个简要介绍。它是一个无需安装的,易用的,强力的PHP调试助手,它能很好的替代var_dump(),print_r(),debug_backtrace()这些函数。它设计的目的就是

2013-11-12 13:25:06 5149 1

原创 PHP你可能也会掉入的坑(二)

在PHP的实际开发过程中遇到的一些坑,其中有部分是自己的理解不够而造成的,坑到深处,真是泪流满面啊。关于整数与字符串比较,这个问题纠正过别人一次,最后不想自己也栽进来了,真是难堪,记下来,谨防再犯!直接来看这个例子:<?php$foo = 0;$bar = 'a3b4c5';if ( $foo < $bar ) { echo 'output';}

2013-11-11 21:26:03 1501

原创 PHP你可能也会掉入的坑

今天被人问:$var = 'test';if (isset($var['somekey'])){ echo 'reach here!!!';}会不会输出'reach here!!!'? ---当然不会啊。我想也没想就答。果然,我掉坑里了!会输出的!如果你没掉坑里,那么恭喜你,你也不用往下看了。现在,让我们来分析一下。既然 isset 了,那么之到底是什么呢?我

2013-09-24 20:54:48 1321

原创 关于MySQL的Myisam和Innodb的一些比较总结

总结一下MySQL的Myisam和Innodb引擎的一些差别,权当复习一了。首先二者在文件构成上:Myisam会存储三个文件:.frm 存储表结构,.MYD存储表的数据,.MYI文件存储表的索引;所以完整的拷贝一张表这三个文件都需要。Innodb也有 .frm表结构文件,但是数据存储就不同了,由于有表空间的概念,所以数据文件可能是独立的,也可能是空闲的,独立的话数据和索引都会在一个

2013-09-20 11:32:10 1690

原创 Alias Method解决随机类型概率问题

举个例子,游戏中玩家推倒了一个boss,会按如下概率掉落物品:10%掉武器 20%掉饰品 30%掉戒指 40%掉披风。现在要给出下一个掉落的物品类型,或者说一个掉落的随机序列,要求符合上述概率。一般人会想到的两种解法第一种算法就是,构造一个容量为100(或其他)的数组array,将其中10个元素填充为类型1(武器),20个元素填充为类型2(饰品)...构造完毕之后,在1到100之间取随机数

2013-08-24 14:47:27 9561

原创 Ruby学习笔记(二)

1.block 代码块do...end 或 {} 构成一个代码块,就像常见的 .each后面跟的代码块、my_nums = [1,2,3]my_double_nums = my_nums.collect {|num| num*2}puts "#{my_double_nums}"#=> [2,4,6]collect能作用在Array的每个元素上,也支持collect! 操作,即改变数

2013-08-13 22:32:45 1210

原创 Ruby学习笔记(一)

最近在Codecademy上把Ruby的基础知识过了一遍,记录了一些笔记,比较零散。0.puts print 都是将内容输出,区别是puts换行。   puts "#{var}"  双引号中用#{var}输出变量,也可以直接输出数组,hash,甚至可以调用函数  如下是注释的写法,注意=begin和=end要写在行首。=begin 这是整段的注释=end#这是单行注释

2013-08-08 23:19:55 1661

原创 php用apc实现的临界区 解决并发,资源互斥同步访问

在面对线程或进程的互斥同步的控制问题时,常用的解决办法是:临界区,互斥锁,信号量临界区保证在某一时刻只有一个线程能够访问到所需资源的方法。任何时候,只能至多有一个线程处于临界区中。如果多个线程要求进入临界区去访问所需资源,那么在临界区空闲时只允许一个线程进入。若已有线程在临界区内,那么其他的线程必须等待,直到进入的线程离开(应该在限制时间内离开)。离开后,其他线程继续抢占。临界区与互斥

2013-08-06 15:57:20 3214

翻译 PHP中如何防止SQL注入

这是StackOverFlow上一个投票非常多的提问 How to prevent SQL injection in PHP?   我把问题和赞同最多的答题翻译了下来。本人翻译水平很渣,请读者见谅。提问:如果用户的输入能直接插入到SQL语句中,那么这个应用就易收到SQL注入的攻击,举个例子:$unsafe_variable = $_POST['user_input'];mysqli_q

2013-08-03 12:12:09 11663 1

原创 php中如何判断数组相等 数组运算符介绍

如何判断两个数组相等呢?其实很简单,用 == 或者 === 就可以了php手册里说明如下,例子名称结果$a + $b联合$a 和 $b 的联合。$a == $b相等如果 $a 和 $b 具有相同的键/值对则为 TRUE。$a === $b全等如果 $a

2013-08-01 14:28:29 5976

原创 linux 批量删除进程的命令

介绍两种方法。要kill的进程都有共同的字段。kill -9 `ps -ef |grep xxx|awk '{print $2}' ` kill -9后面的符号是Tab键上方那个。如上就是kill -9`列出进程,找到包含xxx的行,输出pid的列`kill、ps、grep都是很常用的命令了,awk的作用是输出某一列,如上就是输出pid这一列。这里有一篇awk的教程。ps

2013-07-23 11:34:47 13382

原创 php 检测一个变量是否设置时,empty()能代替isset()吗?

我们先来复习一下empty和isset php手册解释的比较清楚了,可如果一个变量未设置时,empty返回什么结果呢? 可见empty也可以起到检测变量是否设置的目的。那么该不该使用empty代替isset呢? isset和empty的性能? 它们都是语句,不是函数 目前最新的PHP5.5的发布支持了这一特性,即能够在empty中使用任意表达式:

2013-07-20 16:18:42 4464

原创 MySql insert插入操作不完全指北

1.插入的数据来源自其他表表A有id, cola 字段表B有id, cola, colb...等字段,其中id都为主键,cola为相同名字的列现想将表B中colb>1000的记录都插入表A中,SQL语句可以这样写:insert into A(id,cola) select id,cola from B where colb>10002.插入时排除(忽略)重复记录现表

2013-07-17 15:50:38 1530

原创 php 生成不重复随机数(组)的几种方法

下面写几种生成不重复随机数的方法,直接上代码吧<?phpdefine('RANDOM_MAX', 100);define('COUNT', 10);echo 'max random num: '.RANDOM_MAX, ' ;result count:'.COUNT, '';invoke_entry('rand1');invoke_entry('rand2');invo

2013-07-07 11:30:22 7869

原创 php array_merge的坑,数字键名不会覆盖前值

使用php语言的array_merge函数时,以为相同的键名会覆盖,但是请看如下代码:$a1 = array(1=>'abc', 3=>10);$a2 = array(1=>'efg', 3=>20);print_r(array_merge($a1, $a2));会输出什么?我们预想中的是:Array( [1] => efg [3] => 20)实际上输出的

2013-06-02 12:28:10 8615

原创 提高web开发效率的在线工具

1. http://www.debuggex.com/    这个一款在线正则匹配检测工具,强大的地方在于能够可视化检查你的正则表达式匹配情况。    这个工具很好用。其他的正则检测的在线工具还有如:http://regexpal.com/       http://gskinner.com/RegExr/ 2.http://jsonlint.com/     http://p

2013-05-18 10:37:04 2413

转载 【译】理解node.js的事件轮询

在ManUel Kiessling的《The Node Beginner Book》 Node入门书(http://www.nodebeginner.org/index-zh-cn.html)中说明了Node.js的事件轮询:        Node.js可以在不新增额外线程的情况下,依然可以对任务进行并行处理 —— Node.js是单线程的。它通过事件轮询(event loop)来实现并行操

2013-05-14 00:03:59 3499

原创 地址栏输JS代码,打造在线便笺 编辑器

在学习工作,使用浏览器的过程中,经常需要随手记一下东西,当然有很多办法解决这个问题,下面是酷且便捷的一种。data:text/html,#e { position:absolute; top:0; right:0; bottom:0; left:0; font-size:16px;}var myKey="SecretKey_MyData";$(d

2013-04-28 13:27:43 1109

原创 MySQL key重复下按某字段排序

有一个表(user_record),可能有百万条记录,大致内容如下:no uid s================1 a 9992 b 8993 c 12344 a 13225 b 933-----------------uid可以重复。现在要做的是按‘s’倒序(desc)排

2013-03-26 22:23:19 1910

原创 php排序 asort usort实例 对数组的多个字段排序 稳定排序

php中有很多排序函数,下面是常用的一些:sort() 函数用于对数组单元从低到高进行排序。rsort() 函数用于对数组单元从高到低进行排序。asort() 函数用于对数组单元从低到高进行排序并保持索引关系。arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。usort() 使用用户自定义的比较函数对数组中的值进行排序uasort() 使用用户自定义的比较函数对数组中

2013-03-25 22:59:53 5863 2

原创 配置TomCat

配置TomCat1.改端口在conf/server.xml里改               connectionTimeout="20000"                redirectPort="8443" />2.添加虚拟目录conf/server.xml虚拟目录的根路径下必须包含webapps/ROOT/WEB-INF文件夹3.目录列表

2012-07-06 14:47:09 781

转载 Jtree使用详细教程

原帖地址: http://feipigzi.iteye.com/blog/969571英文文档地址: http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html如何使用 Jtree(1)创建树(2)对节点的选择做出响应(3)自定义树的外观表现(4)动态改变一棵树(5)创建树的数据模型

2012-05-09 23:36:05 20693

原创 HTML Parser简易教程--强大的解析html库

HTML Parser是一个用Java写的高速解析html的库。当今的 Internet 上面有数亿记的网页,越来越多应用程序将这些网页作为分析和处理的数据对象。这些网页多为半结构化的文本,有着大量的标签和嵌套的结构。当我们自己开发一些处理网页的应用程序时,会想到要开发一个单独的网页解析器,这一部分的工作必定需要付出相当的精力和时间。事实上,做为 JAVA 应用程序开发者, HtmlParse

2012-04-20 20:48:21 6054 1

转载 从PowerDesigner概念设计模型(CDM)中的3种实体关系说起

我们先说说CDM和PDM的区别:CDM和PDM的区别?概念数据模型(CDM) 信息系统的概念设计工具,即实体-联系图(E-R图),CDM就是以其自身方式来描述E-R图。此时不考虑物理实现的细节,只表示数据库的整体逻辑结构,独立于任何软件和数据存储结构。物理数据模型(PDM) PDM考虑了数据库的物理实现,包括软件和数据存储结构。 PDM的对象:表(Table)、

2012-04-20 19:01:02 2673

原创 struts2 入门

Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applications. The framework is designed to streamline the full development cycle, from building, to deploying

2012-04-14 14:54:15 799

原创 Properties配置文件读取

Java中配置文件-xx.properties 内容是以键值对的形式存储 不带分号,比如,在org/zhe/properties这个包下有一个commom.properties文件,内容如下:name=zheage=22要用到java.util.Properties这个类Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加

2012-04-08 19:01:58 954

原创 Java编写的简易记事本例子 打开另存为文件操作

这篇文章给大家了一个简易记事本Demo。主要介绍JAVA中打开文件和另存为文件的一种做法。用到Java Swing 和 IO的内容。开始之前先介绍两个类javax.swing.JFileChooser --JFileChooser 为用户选择文件提供了一种简单的机制;主要用到这个类的两个方法:int showOpenDialog(Component parent)弹出一个

2012-04-05 20:55:43 5083

程序员面试宝典 全

本书取材于各大IT公司历年面试真题(包括笔试题、口试题、电话面试、英语面试,以及逻辑测试和智商测试)。通过精确详细的分类,把在应聘程序员(含网络、测试等)过程中所遇见的常见考点分为21章。不仅对传统的C系语言考点做了详尽的解说,包括面向对象问题、sizeof问题、const问题、数据结构问题等。还根据外企出题最新特点,针对设计模式问题、C#问题、网络问题、数据库问题、NET问题等,做了深入的说明。

2011-09-25

空空如也

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

TA关注的人

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