前一段时间,一直被MySQL的字符集困扰,今天就这方面的知识总结一下。MySQL的字符集支持(CharacterSetSupport)有两个方面:字符集(Characterset)和排序方式(Collation)。对于字符集的支持细化到四个层次:服务器(server),数据库(database),数据表(table)和连接(connection)。1.MySQL默认字符集MySQL对于字符集的指定可以细化到一个数据库,一张表,一列,应该用什么字符集。但是,传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置,那么,默认的配置从何... 在Google中搜索“mysql乱码”,可以查到“1,550,000”条结果;搜索“jsp乱码”,可以查到“1,450,000”条结果,当然JSP乱码不一定就是MySQL乱码,但多数情况是编码问题(可能是页面编码、数据库编码)。可见,编码问题在我们开发过程中是经常出现的,因此对编码的了解、设置和修改就显得及其重要了。1.MySQL字符集和校对规则我们都知道,字符集就是一套文字符号及其编码、比较规则的集合,因为计算机只认识二进制代码,所有我们必须要有一个转换。MySQL的字符集包括字符集(CharacterSet)和校对规则(Collation)两个概念。... 在国内,搞技术也来越不吃香了。人们都想着投身公务员的行列,或是从事商业自己当老板。许多当年好友一谈起自己的技术事业来,就仿佛自己正驾驶着诺亚方舟,意气风发挥斥方遒。然而多年以后,他们纷纷睿智而又深沉地选择了管理,再谈起技术,就仿佛在谈论一艘即将沉没的破船,有些回忆的伤感,可更多的却是幸免于难的庆幸。在IT业界,这种现象更加明显。作为最低层,程序员们好像已经从白领阶层退居蓝领大军。大家都很迷惘——莫非我们永无出头之日,永远要听别人使唤,永远没有做主的时候吗?以前我提到了这样一个观点:“你只要专注做好一件事,依次把它做到部门第一、公司第一、地区第一、全国第一、全球第... 就是常见的选取日期的日历控件而已,还没到的日期无法选择,其它的都和正常日历控件差不多,先看看演示效果吧。*{margin:0;padding:0;}/*日期控件*/.pc_caldr{background-color:#FFFFFF;border:1pxsolid#CCCCCC;color:#000000;height:auto;padding:5px;position:absolute;width:161px;z-index:10;}.pc_caldr.selector{height:24px;padding:2... DevelopersarefromMars,programmersarefromVenus,sowherearecodersfrom?不管是CPPer,Javaer,还是PHPer等等,不少开发人员经历过这样的困惑:我到底是工程师(SDE,orDeveloper),程序员(Programmer),还是Coder(编码员)呢?这个问题看上去似乎没有什么意思,甚至不过是一次无聊的名词解释。但是,我们以这里作为所有话题的起点,是因为任何观点并没有绝对的对与错,决定最终选择的恰恰是看问题的角度——身份当然是其中的一个重要影响力。屁股决定脑袋,这样的道理无需赘述。... PHPforeach()语法结构用于遍历操作或输出数组,foreach()仅能用于遍历数组或对象,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。语法:foreach(arrayas$value)statement//或者:foreach(arrayas$key=>$value)statement上述语法中,每次循环将当前单元的值赋给$value并且数组内部的指针向前移一步。在第二种语法格式中还将当前单元的键名也会在每次循环中赋给变量$key。通常循环访问数组都用for循环,例如:for($i=0;$i<3;$i+... curl是使用URL语法的传送文件工具,支持FTP、FTPS、HTTPHTPPSSCPSFTPTFTPTELNETDICTFILE和LDAP。curl支持SSL证书、HTTPPOST、HTTPPUT、FTP上传,kerberos、基于HTT格式的上传、代理、cookie、用户+口令证明、文件传送恢复、http代理通道和大量其他有用的技巧。原来php默认并不进行此项功能的扩展,但还是有的,只是没有让它生效罢了。打开PHP安装目录,搜索以下三个文件ssleay32.dll、libeay32.dll和php_curl.dll,一一拷贝到系统目录下的system32文件夹下,修... 程序其实就是两个东西:代码+数据,写程序的时候也就是写代码操作数据的过程。做程序开发和做菜很像,数据就是食材,代码就是厨艺,做出的软件就是一道菜了,至于这个菜好不好吃,到底是看食材还是看厨艺了?呵呵,当我抛出这个问题的时候,我的第一反应是菜不好吃当然是手艺不好了,不知道其他童鞋是不是这么想的。认真想下,一道好菜一般都是二者必须兼备,当然不排除某一项突出也可以达到同样的效果,但这种情况毕竟不是大众化,而是属于少数精英的,做软件也是如此,代码与数据是不可偏废的。这里我要提的是数据。根据我的经验和知识(分类标准我一直想不太好,所以说是自己的经验和知识),我把数据分为两类:落地... <!DOCTYPE>标签很简单,你或许会不在意。但是你有没有仔细了解过<!DOCTYPE>标签?W3cschool上建议使用XHTMLTransitionalDTD,很多人就很听话地把Dreamweaver的HTML文档类型默认设置为XHTML1.0Transitional。之后就理所当然地一直用到现在了。人这东西还真是,越长大就越懒了,很多东西都被潜意识地当成了理所当然。<!DOCTYPE>的定义<!DOCTYPE>声明位于文档中的最前面的位置,处于<html>标签之前。此标签可告知浏览器文档使用哪种HTML或XHTML规范。该标... 1.基础很重要,不要生疏了不管应聘什么开发岗位,基础永远是最重要的。IT业不停地在炒作新概念,昨天是SOA,今天是云计算。我们永远不知道明天流行什么,但是只要有踏实的基础,辅以较好的学习能力,要跟上步伐也不会太难。所以绝大多数公司都会特别看重应聘人员的基础能力,比如编程语言本身的特性、基本的算法和数据结构、进程间通信等等,毕竟这些具体技术问题有客观的答案,而且在各具体行业都是相通的。工作三年以上的人,往往都习惯了“拷贝+修改”式的工作,用不到的基础知识基本上都忘掉了,一到应聘的时候就难免眼高手低,总是抓不住机会。而事实上,技术基础即便是遗忘了,也... 学习应该不是一个问题,尤其对IT圈而言。每个IT从业人员都知道,如果你不学习,你很快就会被淘汰。IT圈新技术、思想层出不穷,也逼着大家不断去学习。翻开IT从业人员的简历,不管是新手还是老油条,学习能力强几乎是必备项。IT从业人员的危机感也很强,不少人都在强调,如果在公司学不到东西就会离开。受此驱动,IT公司和其他公司不同,三天两头的培训学习,公司很重视学习。然而,学习是个问题,而且是个大问题。以前在看报纸的时候,发现过一个现象,肝炎、脚气什么的,疑难杂症的广告最多。恰恰是因为缺乏根治的手段,才会有那么多医治的方法,才会让那么多庸医有利可图。“真正的难题都... 我在读很多优秀的JavaScript源码时候常常被它诡异的语法搞的精疲力尽,所以时不时的加固JavaScript基础知识是十分有必要的,这些知识每次温故或者你换个角度去思考都能收获颇多,那么如此深不可测的语言是怎么诞生的呢?它的祖师爷在创造它的时候是基于什么思考的呢?我想如果大伙知道了这段历史,或许理解起JavaScript来就会感觉跟轻松些跟惬意些,说不定很多人因此而想好好的学习它。人总有点八卦的小毛病,回顾下一件事情或一个东西的历史,探寻他们历史过程中的种种有趣的细节,一定是件很有意思的事情。这位就是JavaScript的开山祖师爷:BremdanEich(... 1.能把面向对象和具体语言的对象抽象联系起来在面向对象刚刚入门的时候,一大顿理论加上解释又是只言片语,什么原则,方法等根本好像是没有用的嘛。唯一看明白的就是对象,类就是Class。在编程的时候,碰到一个名词就把它写成class,以为这就是面向对象编程。拿图书馆案例来讲,初步分析后可能就把我们的学生Student作为我们的Class来编程,并设计了它的属性,方法和操作,具体来说就是给Student加上了name属性,借书方法等。仿佛面向对象技术就是这么简单,这时候就会怀疑面向对象语言书本上开头讲的什么封装,多态,继承等到底有什么作用,简直就是一大堆废话!?... 很多时候我们需要计算PHP脚本的执行时间,来获知脚本的效率等问题。比如有一个一大段的PHP脚本,我们就需要一个分段获取脚本执行时间的方法。先介绍要用到的函数://计时函数functionruntime($mode=0){static$t;if(!$mode){$t=microtime();return;}$t1=microtime();list($m0,$s0)=split("",$t);list($m1,$s1)=split("",$t1);returnsprintf("%.3fms",($s1+$m1-$s0-$m0)*1000);}... PclZip是一个很强大的压缩与解压缩zip文件的PHP类,PclZiplibrary能够压缩与解压缩Zip格式的压缩档(WinZip、PKZIP);且能对此类类档案进行处理,包括产生压缩档、列出压缩档的内容以及解压缩档案等等。同时也可以对现有的ZIP包进行添加或删除文件。官方网站:http://www.phpconcept.net/pclzip/最近在开发我的Wordpress插件ShareLink,在这过程中,发现了PclZip这个操作zip文件的PHP类,不得不推荐下。简单、易用、强大是我对它的评价。还有另外一个推荐的原因就是在它的源码里面让我发现... 最近做了个小任务,短信、彩信的群发功能。合作方提供了一个接口,我们只要把需要发送的内容拼成一个XML,再httppost到那个地址就行。这里用到了curl这个库,简单记录下用法。下面是短信群发的小程序,先从一个上传的电话号码文本获取号码,然后获取内容发送即可。<?phpif($_FILES['phone_num']['error']>0){echo'Problem:';switch($_FILES['phone_num']['error']){//1表示文件超过php配置里的大小限制case1:echo'Fileexceeded... Google今天首页的动态涂鸦是为了庆祝《芝麻街》木偶的创造者——吉姆·亨森(JimHenson)75周年诞辰。1936年,吉姆·亨森出生于美国密西西比州,是公认的木偶大师,1969年吉姆·亨森公司制作的儿童教育节目《芝麻街》一经推出即风靡世界。《芝麻街》最为人熟悉的是节目中采用大量布偶(Muppet)作为大部份主角,这些布偶的创造者正是吉姆·亨森。除了在电视播放,芝麻街也曾推出电影、玩具、书本、录影带等副产品。由于其传播之广泛,影响之久远,芝麻街被公认是世界上最家喻户晓的幼儿教育节目。今天的动态涂鸦选取了5个布偶,点击每个布偶或其下放得按钮就可以将其激活,它的... 在JavaScript中定义一个函数,有两种写法:functionftn(){}//第一种varftn=function(){}//第二种有人说,这两种写法是完全等价的。但是在解析前,前一种写法会被解析器自动提升到代码的头部,因此违背了函数先定义后使用的原则,所以建议定义函数时候,全部采用后一种写法。看完这句话,我第一个感觉是两个在使用时候是完全一致的,只是解析上有所差异。但是他的解释“前一种写法会被解析器自动提升到代码的头部”让我很困惑。如是我有了下面第一个测试:<scripttype="text/javascript">f... PHP默认的上传限定是最大2M,想上传超过此设定的文件,需要调整PHP、apache等的一些参数。下面,我们简要介绍一下PHP文件上传涉及到的一些参数:file_uploads:是否允许通过HTTP上传文件的开关,默认为ON即是开。upload_tmp_dir:upload_tmp_dir用来说明PHP上传的文件放置的临时目录,要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限,如果未指定则PHP使用系统默认值。upload_max_filesize:允许上传文件大小的最大值,默认为2M。post_max_si... PHP说简单,但是要精通也不是一件简单的事。我们除了会使用之外,还得知道它底层的工作原理。PHP是一种适用于web开发的动态语言。具体点说,就是一个用C语言实现包含大量组件的软件框架。更狭义点看,可以把它认为是一个强大的UI框架。了解PHP底层实现的目的是什么?动态语言要像用好首先得了解它,内存管理、框架模型值得我们借鉴,通过扩展开发实现更多更强大的功能,优化我们程序的性能。1.PHP的设计理念及特点多进程模型:由于PHP是多进程模型,不同请求间互不干涉,这样保证了一个请求挂掉不会对全盘服务造成影响,当然,随着时代发展,PHP也早已支...