代码改变世界

随笔档案-2011年04月

PHP IPV6的判断

2011-04-29 15:21 by 卫佳, 856 阅读, 收藏,
摘要: IPV6的时代快要到来了,发一个验证IPV6地址是否合法的正则。 <?php // literally from the ABNF in rfc3986 (thanks to 'WCP') function validateIPv6($IP) { replica handbags return preg_match('/\A (?: (?: (?:[a-f0-9]{1,4}:){6} | ::(?:[a-f0-9]{1,4}:){5} | (?:[a-f0-9]{1,4})?::(?:[a-f0-9]{1,4}:){4} | (?:(?:[a-f0-9]{1,4} 阅读全文

foreach的使用

2011-04-29 15:20 by 卫佳, 242 阅读, 收藏,
摘要: foreach 通过在 $value 之前加上 & 很容易就能修改数组的单元,如:PHP代码foreach($arras&$value){ $value.='4';// microfiber cloth }但这个用法也很容易造成错误,而且也不容易找。看例子更直截了当:PHP代码<?php $arr=array('a','b','c'); $arr2=array('d','e','f'); foreach($arras&$value){//习惯用$valu 阅读全文

php大型文件上传进度条的实现

2011-04-29 15:20 by 卫佳, 242 阅读, 收藏,
摘要: 目前我知道的方法有两种,一种是使用PHP的创始人 RasmusLerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc),另外一种方法是使用PECL扩展模块 uploadprogress实现(http://pecl.php.net/package/uploadprogress) 我这里举两个分别实现的例子供参考,更灵活的应用根据自己需要来修改。APC实现方法:安装APC,参照官方文档安装,可以使用PECL模块安装方法快速简捷,这里不说明配置php.ini,设置参数 apc.rfc1867=1 ,使APC支持上传进度条功能,在APC源码说明文档里面 阅读全文

PHP 几个实用的HTTP函数

2011-04-29 15:20 by 卫佳, 174 阅读, 收藏,
摘要: 1. sys_getloadavg()sys_getloadavt()可以获得系统负载情况。该函数返回一个包含三个元素的数组,每个元素分别代表系统再过去的1、5和15分钟内的平均负载。与其让服务器因负载过高而宕掉,不如在系统负载很高时主动die掉一个脚本,sys_getloadavg()就是用来帮你实现这个功能的。 不过很遗憾,该函数在windows下无效Wholesale MBT shoes。2. pack()Pack()能将md5()返回的32位16进制字符串转换为16位的二进制字符串,可以节省存储空间。3. cal_days_in_month()cal_days_in_month()能够 阅读全文

PHP 判断语言跳转

2011-04-28 16:52 by 卫佳, 511 阅读, 收藏,
摘要: 当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。PHP代码:<? $lan = substr(?$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' content = '0;URL = gb/index.htm'>"); else print("<meta http-equiv='refresh' content =  阅读全文

PHP和JSON

2011-04-28 16:49 by 卫佳, 277 阅读, 收藏,
摘要: 互联网的今天,AJAX已经不是什么陌生的词汇了。说起AJAX,可能会立即想起因RSS而兴起的XML。XML的解析,恐怕已经不是什么难题了,特别是PHP5,大量的XML解析器的涌现,如最轻量级的SimpleXML。不过对于AJAX来说,XML的解析更倾向于前台Javascript的支 持度。我想所有解析过XML的人,都会因树和节点而头大。不可否认,XML是很不错的数据存储方式,但是其灵活恰恰造成了其解析的困难。当然,这里所指的 困难,是相对于本文的主角--JSON而言。JSON为何物?我就不重复概念了。通俗的说,它是一种数据的存储格式,就像PHP序列化后的字符串一样。它是一种数据描述。比如我们将 阅读全文

XML和MYSQL转换--PHP实现

2011-04-28 16:46 by 卫佳, 450 阅读, 收藏,
摘要: mysql2xml.php类文件:用于备份MySQL数据的!PHP代码<?php classMySQL2XML{ protected$conn; protected$result; protected$tables; protected$saveFolder='datas/'; publicfunction__construct($config=NULL){ if($config!==NULL&&is_array($config)){ $this->connect($config); } } publicfunctionconnect($config 阅读全文

PHP提高编程效率--引入缓存机制

2011-04-28 16:45 by 卫佳, 178 阅读, 收藏,
摘要: 用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它 是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、$row[’id’] 的速度是$row[id]的7倍。3、echo 比print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。4、在执行for循环之前确定最大循环数,不要每循环 阅读全文

final和static

2011-04-27 16:44 by 卫佳, 190 阅读, 收藏,
摘要: final定义的变量可以看做一个常量,不能被改变; final定义的方法不能被覆盖; final定义的类不能被继承。 final static 就是再加上static的特性就可以了 static 和final是没有直接关系的 static 是在内存中分配一块区域,供整个类通用,所有的类的对象都享有它的共同的值 static 和final的区别 一、static : 什么情况下我们要使用static呢? 1、只想用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至根本不创 建对象。 2、我们需要一个特殊的方法,它没有与这个类的任何对象关联。也就是说,即使没有创建对象,也需要一个能调用 阅读全文

引用类型和原始类型

2011-04-27 16:44 by 卫佳, 320 阅读, 收藏,
摘要: Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。 另外,Java 还为每个原始类型提供了封装类(Wrapper)。如果需要一个整型变量,是使用基本的 int 型呢,还是使用 Integer 类的一个对象呢?如果需要声明一个布尔类型,是使用基本的 boolean,还是使用 Boolean 类的一个对象呢?本文可帮助您作出决定。 下表列出了原始类型以及它们的对象封装类。原始类型 封装类 =================boolean Boolean char Character byte Byte short Short int Integer long Long float F 阅读全文

java的继承和接口实现

2011-04-27 16:44 by 卫佳, 1076 阅读, 收藏,
摘要: Java是面向对象的语言,而运行时多态性是面向对象程序设计代码重用的一个最强大机制,动态性的概念也可以被说成“一个接口,多个方法”。 Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制,下面就继承和接口实现两方面谈谈java运行时多态 性的实现。一、通过继承中超类对象引用变量引用子类对象来实现举例说明:1. //定义超类superA 2. classsuperA 3. { 4. inti=100; 5. voidfun() 6. { 7. System.out.println(“ThisissuperA”); 8. } 9. } 10. //定义su 阅读全文

三种for循环

2011-04-27 16:43 by 卫佳, 408 阅读, 收藏,
摘要: 循环作为程序语言的三大逻辑控制结构之一,在实际开发中是经常会遇到的。在Java程序的循环结构使用上,我们经常会遇到这种应用。根据一个对象的长度进行循环并对对象每个每个元素进行处理。 如for(vari=0;i<a.length;i++){ sum+=a[i]// weddingjewelry sets}以上只是一个简单的示例,对于如上程序,很多程序开发者都研究过关于其执行效率的问题。因此就出现了以下的两种写法:for(vari=0,iLen=a.length;i<iLen;i++){ sum+=a[i]}for(var i=0,item;item=a[i];i++){ sum+=i 阅读全文

NetBeans移动开发包

2011-04-26 14:27 by 卫佳, 280 阅读, 收藏,
摘要: NetBeans移动开发包是NetBeans集成开发环境(IDE)的一个用来开发Java ME应用程序的插件。 NetBeans移动开发包可以用来编写代码,测试,调试Java移动版(Java Micro Edition,Java MEcleaning cloth)平台的应用程序。他支持许多厂家的模拟器和SDK,包括诺基亚公司发布的。 平台 这个开发包支持: CLDC 和 MIDP 1.0 和 MIDP 2.0 (例如诺基亚的Series 40和S60平台) CDC 和 Personal Profile (例如诺基亚的Series 80平台) 功能特点 快速应用程序开发(RAD,Rapid D. 阅读全文

观察者模式和装饰者模式

2011-04-26 14:27 by 卫佳, 376 阅读, 收藏,
摘要: 很久没有来这一个论坛里了,一上来就看到很多关于设计模式的贴子上了精,今天我也来谈一下设计模式,我现在所介绍的是一个外观模式,和装饰者模式,这两者在初学设计模式的人面前可能是一样也,就算是高手,也有时会搞不清楚到底两者的区为何在!好废话少说了,先来说说外观模式,外观模式,故明思意,就是只看外表,在我们的代码中实际代码中,就是对一系列操作进行封装,并对外提供一个接口,在我们现实生活中,HIFI对大家来说应该不陌生了现在就用一个HIFI的例子来给大家说明public interface IHIFI{public void hifiOpen();}public class HIFI implement 阅读全文

dojo之面向对象

2011-04-26 14:26 by 卫佳, 253 阅读, 收藏,
摘要: 面向对象三大特性:封装、继承、多态。在熟悉了Java/C#/C++这些高级面向对象语言的语法结构后,我们或多或少会对javascript脚本语言的面向对象感到一些不适,function、prototype、call、apply…… 为了消除这种对javascript面向对象语法的不适,众多js库都构建了更符合传统OO编程思想的代码框架,如prototype、mootools、Cheap MBT shoes sale等等,引用mootools文档中创建对象的例子以下是引用片段: varAnimal=newClass({ initialize:function(age){ this.age=age 阅读全文

ebay&Eclipse

2011-04-26 14:26 by 卫佳, 213 阅读, 收藏,
摘要: eBay权威人士Michael Galpin在IBM开发者网站上发表了一篇包含两部分的文章,讲述了eBay广泛使用Eclipse插件和代码生成器以改善开发者体验和代码质量。 第一篇文章讲述了eBay从之前基于Perl的表示层架构迁移到现在的Java版本——即我们熟知的V4——的进化过程: “V4架构采取的方式是利用后端强类型的Java对象来表示前端使用的任何东西。你的页面使用图片吗?那么就有一个针对该图片的Java对象。 如果你想删除该图片,其复杂程度和删除任何其他Java类一样。对于超链接、CSS及JavaScript来说同样如此。bath rug没有使用servlets或 者JSPs来创建 阅读全文

进程死锁 银行家算法

2011-04-25 15:25 by 卫佳, 395 阅读, 收藏,
摘要: #include "stdio.h"int Finish [10] = { 0};/* 进程最多10个*/int Max [10][10] = { 0};/* 资源数最多10个 */int Alloc [10][10] = { 0 };int Need [10][10] = { 0 };int Available [10] = { 10 }; int Request [10][10] = { 0 }; pursehangerint main (){ int n,m; int i,j; int c=1; printf("\n输入进程个数和资源种类数 [ 都不超过10 阅读全文

Java和PHP开发比较

2011-04-25 15:23 by 卫佳, 592 阅读, 收藏,
摘要: 比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的比较: 一、 语言比较 PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java的语法和熟悉一些核心的类库,懂得面向对象的程序设计方法。所以java不如php好学。Cheap MBT shoes sale Java首先要编译成字节码.class文件,然后在java虚拟机上解释执行。Java的Web开发首先最容易想到的就是 JSP(现在已经到JSP2.0),原来的jav 阅读全文

采集器的制作—PHP实现

2011-04-25 15:23 by 卫佳, 394 阅读, 收藏,
摘要: 采集器的制作—PHP实现采集器,通常又叫小偷程序,主要是用来抓取别人网页内容的。关于采集器的制作,其实并不难,就是远程打开要采集的网页,然后用正则表达式将需要的内容匹配出来,只要稍微有点正则表达式的基础,都能做出自己的采集器来的。 前几天做了个小说连载的程序,因为怕更新麻烦,顺带就写了个采集器,采集八路中文网的,功能比较简单,不能自定义规则,不过大概思路都在里面了,自定义规则可以自己来扩展。 用php来做采集器主要用到两个函数:file_get_contents()和preg_match_all(),前一个是远程读取网页内容的,不过只在php5 Wigfactories以上的版本才能用,后一个 阅读全文

Java 多线程技术探究

2011-04-25 15:22 by 卫佳, 214 阅读, 收藏,
摘要: Java 多线程技术探究 一、run()和start() 这两个方法应该都比较熟悉,把需要并行处理的代码放在run()方法中,start()方法启动线程将自动调用 run()方法,这是由Java的内存机制规定的。并且run()方法必须是public访问权限,返回值类型为void. 二、关键字Synchronized 这个关键字用于保护共享数据,当然前提是要分清哪些数据是共享数据。每个对象都有一个锁标志,当一个线程访问该对象时,被Synchronized修饰的数据将被“上锁”,阻止其他线程访问。当前线程访问完这部分数据后释放锁标志,其他线程就可以访问了。wedding jewelry sets以 阅读全文

MYSQL的数据类型以及建库策略

2011-04-22 16:18 by 卫佳, 168 阅读, 收藏,
摘要: 无论是在小得可怜的免费数据库空间或是大型电子商务网站,合理的设计表结构、充分利用空间是十分必要的。这就要求我们对数据库系统的常用数据类型有充分的认识。下面我就将我的一点心得写出来跟大家分享。 一、数字类型。数字类型按照我的分类方法分为三类:整数类、小数类和数字类。 我所谓的“数字类”,就是指DECIMAL和NUMERIC,它们是同一种类型。它严格的说不是一种数字类型,因为他们实际上是将数字以字符串形式保存 的;他的值的每一位(包括小数点)占一个字节的存储空间,因此这种类型耗费空间比较大。但是它的一个突出的优点是小数的位数固定,在运算中不会“失真”, 所以比较适合用于“价格”、“金额”这样对精度 阅读全文

MySQL数据库中定义

2011-04-22 16:18 by 卫佳, 248 阅读, 收藏,
摘要: 本文给出了MySQL数据库中定义外键的必要性、具体的定义步骤和相关的一些基本操作,供大家参考!定义数据表假如某个电脑生产商,它的数据库中保存着整机和配件的产品信息。用来保存整机产品信息的表叫做pc;用来保存配件供货信息的表叫做parts。在pc表中有一个字段,用来描述这款电脑所使用的CPU型号;在parts表中相应有一个字段,描述的正是CPU的型号,我们可以把它想成是全部CPU的型号列表。body brush很显然,这个厂家生产的电脑,其使用的CPU一定是供货信息表(parts)中存在的型号。这时,两个表中就存在一种约束关系(constraint)——pc表中的CPU型号受到parts表中型号 阅读全文

MYSQL的日常维护规范

2011-04-22 16:18 by 卫佳, 501 阅读, 收藏,
摘要: 建立一个数据库表维护规范在一个定期基础而非等到问题出现才实施数据库表的检查是一个好主意。应该考虑到建立一个预防性维护的时间表,以协助自动问题,是你可以采取措施进行修正:执行常规的数据库备份并允许更新日志。安排定期的常规表检查。通过检查表,将减少使用备份的机会。这个工作,在Windows下使用计划任务,Unix使用cron作业(一般从运行服务器所示用的该帐号的crontab文件中调用),并且很容易实现。例如,你作为mysql用户运行服务器,则可以从mysql的crontab文件中建立定期检查。如果你不知道如何使用cron,应使用下列命令查看相关的Unix手册页:$man cron$man cro 阅读全文

MYSQL内存线程独享技巧

2011-04-22 16:17 by 卫佳, 184 阅读, 收藏,
摘要: 在这里我们将介绍的是MySQL内存使用上的线程独享,线程独享内存主要用于各客户端连接线程存储各种操作的独享数据,如线程栈信息,分组排序操作,数据读写缓冲,结果集暂存等等,而且大多数可以通过相关参数来控制内存的使用量。 对于任何一个数据库管理系统来说,内存的分配使用绝对可以算的上是其核心之一了,所以很多希望更为深入了解某数据库管理系统的人,都会希望一窥究竟,我也不例外。 从内存的使用方式MySQL 数据库的内存使用主要分为以下两类 线程独享内存 全局共享内存 今天这篇文章暂时先分析 MySQL 中主要的 “线程独享内存” 的。 在 MySQL 中,线程独享内存主要用于各客户端连接线程存储各种操作 阅读全文

a different object with the same identifier value was already associated with

2011-04-21 14:11 by 卫佳, 424 阅读, 收藏,
摘要: 最近在工作中遇到这样一个异常,异常的原因很容易找到,就是看怎么去解决这个异常了。自己尝试用了网上搜索到的好多方法都不能解决。最后自己找到了两种解决方案:cleaning cloth我用的是hibernate3.0。 方案一:在写完要一个完整的操作之后,比如,delete操作,调用this.getHibernateTemplate().evict(object),这样就可以把多余的对象给清除掉了。然后再执行需要的操作,如saveOrUpdate。 方案二:同样是在一个完整的操作之后,比如,delete操作,然后同时调用 this.getHibernateTemplate().flush();th 阅读全文

java servlet 小总结

2011-04-21 14:10 by 卫佳, 195 阅读, 收藏,
摘要: java servlet 开发工具(jsdk)提供了多个软件包,在编写 servlet 时需要用到这些软件包。其中包括两个用于所有 servlet 的基本软件包:javax.servlet 和 javax.servlet.http。可从sun公司的web站点下载 javaservlet 开发工具。 下面主要介绍javax.servlet.http提供的http servlet应用编程接口。 http servlet 使用一个 html 表格来发送和接收数据。要创建一个http servlet,请扩展 httpservlet 类,该类是用专门的方法来处理 html 表格的 genericserv 阅读全文

扔玻璃球问题

2011-04-21 14:10 by 卫佳, 718 阅读, 收藏,
摘要: 记得有一道常见的面试题是问:有两个完全一样的玻璃球,从某一高度摔下会碎,问100层高的楼最多扔几次可以测出来在那一层扔时玻璃球恰好碎。 为了能测出来在那一层碎,如果第一个球碎了的话第二个球就要从已测未碎的最高的一层开始,一层一层的向上仍,所以问题就是第一次应该扔在第几层,如果没有碎,那么下一次要和上一次隔多少层。隔一样多层肯定不对,因为 如果第一个碎了,那么第二个最差情况就要仍和在上一步碎一样多的次数,而他已经比上一次最差情况多仍一次了。所以应该是每一次间隔减一,来弥补第一个球多仍的次数。最后求出来就是最多扔14次即可。body brush 这个问题看上去还是比较简单的,往后一想,如果是三个. 阅读全文

AJAX中GET和POST方式乱码解决方案

2011-04-21 14:10 by 卫佳, 448 阅读, 收藏,
摘要: GET方式 页面: var tuiName=document.getElementById('demo_tempaltename').value;var url="card.do?method=findTableUiDictByUiname&tuiname="+tuiName;createXmlHttp();//创建XmlHttpRequest对象xmlHttp.onreadystatechange = writeMsg;xmlHttp.open("GET", url, true);xmlHttp.send(null); enam 阅读全文

反射(Reflection)和内省(Introspector)

2011-04-20 14:19 by 卫佳, 263 阅读, 收藏,
摘要: 很多朋友在深入的接触JAVA语言后就会发现这样两个词:反射(Reflection)和内省(Introspector),经常搞不清楚这到底是怎么回事,在什么场合下应用以及如何使用?今天把这二者放在一起介绍,因为它们二者是相辅相成的。反射相对而言,反射比内省更容易理解一点。用一句比较白的话来概括,反射就是让你可以通过名称来得到对象(类,属性,方法)的技术。例如我们可以通过类名来生成一个类的实例;知道了方法名,就可以调用这个方法;知道了属性名就可以访问这个属性的值。bath rug还是写两个例子让大家更直观的了解反射的使用方法://通过类名来构造一个类的实例 Class cls_str = Clas 阅读全文

面向对象的程序设计的优点

2011-04-20 14:18 by 卫佳, 1485 阅读, 收藏,
摘要: 面向对象的程序设计的优点 1.符合人们习惯的思维方法,便于分解大型的复杂多变的问题。由于对象对应于现实世界中的实体,因而可以很自然地按照现实世界中处理实体的方法来处理对象,软件开发者可以很方便地与问题提出者进行沟通和交流。 2.易于软件的维护和功能的增减。对象的封装性及对象之间的松散组合,都给软件的修改和维护带来了方便。front lace wig 3.可重用性好。重复使用一个类(类是对象的定义,对象是类的实例化),可以比较方便地构造出软件系统,加上继承的方式,极大地提高了软件开发的效率。 4.与可视化技术相结合,改善了工作界面。随着基于图形界面操作系统的流行,面向对象的程序设计方法也将深入人 阅读全文

java关键字

2011-04-20 14:18 by 卫佳, 155 阅读, 收藏,
摘要: 1.public 使用对象:类、接口、成员 介绍:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的 2.private 使用对象:成员 介绍:成员只可以在定义它的类中被访问 3.static 使用对象:类、方法、字段、初始化函数 介绍:成名为static的内部类是一个顶级类,它和包含类的成员是不相关的。静态方法是类方法, 是被指向到所属的类而不是类的实例。静态字段是类字段,无论该字段所在的类创建了多少实例,该字段只存在一个实例被指向到所属的类而不是类的实例。初始化函数是在装载类时执行的,而不是在创建 实例时执行的。Cheap MBT shoes sale4.final 使用对象:类、方 阅读全文

单例模式

2011-04-20 14:17 by 卫佳, 245 阅读, 收藏,
摘要: 一、什么是单例模式: 单例模式确保某一个类只有一个实例,而且向这个系统提供这个实例。 二、单例模式的要点: 1、某个类只能有一个实例 2、它必须自行创建这个实例 3、必须自行向这个系统提供这个实例 三、单例模式的结构及实现: 1、饿汉式单例类: 类图: 代码: public class EagerSingleton partywigs{ private static final EagerSingleton m_instance = new EagerSingleton(); private EagerSingleton() { } public static EagerSingleton g 阅读全文

PHP面向对象--重载

2011-04-19 16:09 by 卫佳, 188 阅读, 收藏,
摘要: 方法调用和成员访问都能通过__call,__get和__set方法被加载。这些方法将只有当你试图访问不包括成员或方法的对象或继承对象时触发。不是所有的重载方法都必须被定义为static.从PHP5.1.0开始也可以通过__isset()和__unset()方法逐个重载isset()和unset()函数。成员函数重载(Member overloading)void __set ( string name, mixed value )mixed __get ( string name )bool __isset ( string name )void __unset ( string name ) 阅读全文

PHP面向对象--抽象类

2011-04-19 16:08 by 卫佳, 161 阅读, 收藏,
摘要: PHP 5中引入了抽象类和抽象方法。不允许创建一个已经定义为abstract的类的一个实例。任何至少包含一个抽象方法的类也必须是抽象的。被定义为抽象的方法仅仅是声明方法的一个信号,并不能定义它们的实现。当从一个抽象类继承时,在父类中所有抽象方法的标记的声明必须通过子类定义;另外,这些方法必须用定义相同的访问属性。例如,如果方法被定义为protected类型,执行函数必须定义为protected或public.例子 19-16. 抽象类例子PHP代码如下: wedding crown<?phpabstractclassAbstractClass{//ForceExtendingclasst 阅读全文

PHP面向对象--接口

2011-04-19 16:08 by 卫佳, 190 阅读, 收藏,
摘要: 对象接口允许你创建一个指定类的方法的执行代码,而不必说明这些方法是如何被操作(处理)的。接口被用来定义接口关键字的使用,同样作为一个标准类,但没有任何方法有它们内容的定义。在接口中所有的方法必须声明为public,这是接口的特性。implements (执行,实现)为了实现一个接口,使用了implements操作。在接口中所有的方法必须在一个类的内部实现;疏忽这些将导致一个致命错误。如果渴望通过使用一个逗号分开每个接口,类可以实现多个接口。例子 19-17. 接口实例Cheap MBT shoes salenclick="copycode($('phpcode10') 阅读全文

PHP面向对象--静态

2011-04-19 16:08 by 卫佳, 175 阅读, 收藏,
摘要: 声明静态的类的成员和方法,使它不需要一个类的实例.一个static成员的声明不能通过一个类对象的实例来访问(尽管一个静态方法可以)。静态声明必须在可见性声明之后。为了兼容PHP4,如果没有可见性被声明,那么成员和方法将被当作是已经声明为public。由于静态方法可以调用非对象实例,伪变量$this不可以在声明为静态的方法中使用。事实上static方法调用形式在编译时被确定。当使用必须要声明的类名时,方法是完全标识和无继承规则的应用。当使用必须要声明的类名时,这种方法就被完全确认,而且没有使用继承的规则。如果self已经被声明,那么self就被当前所属的类所解释。也不适用与继承规则。静态属性不能 阅读全文

PHP面向对象--类常量

2011-04-19 16:08 by 卫佳, 211 阅读, 收藏,
摘要: 可以在每个基类中定义常量使它保持不变。在你不使用$符号去声明或使用它时,常量不同于普通变量。就象静态成员,常量值不能通过对象的实例来访问(而应使用$object::constant). 常量值必须是一个常量表达式,而不是一个变量,一个类的成员,一个数学表达式或函数调用的结果。例子 19-15. 定义并使用一个常量PHP代码如下:weddingjewelry sets<?phpclassMyClass{constconstant='constantvalue';functionshowConstant(){echoself::constant."\n"; 阅读全文

PHP网站开发方案

2011-04-18 15:29 by 卫佳, 282 阅读, 收藏,
摘要: 一、开发成员a)项目主管b)页面美工c)页面开发d)服务端程序开发e)系统与数据管理f)测试与版本控制二、 网站组开发简明流程三、 开发工具与环境a)服务器配置i. WEB服务器: FreeBSD6.1+Apache2.0+PHP5.0,SVN版本控制服务(仅测试机)。ii.数据库服务器: WIN2003 server+SQL server 2000+MySQL5.0,CLUSTERED SERVER 集群服务,邮件服务器。iii. 100M/1000M交换机Cheap MBT shoes saleb) 开发工具i. 前台: Macromediaflash 8.0、MacromediaDrea 阅读全文

PHP正则表达式

2011-04-18 15:29 by 卫佳, 281 阅读, 收藏,
摘要: PHP正则表达式主要用于字符串的模式分割、匹配、查找及替换操作。使用正则表达式在某些简单的环境下可能效率不高,因此如何更好的使用PHP正则表达式需要综合考虑我的PHP正则入门,是起源于网上的一篇文章,这篇文章由浅入深的阐述了PHP正则表达式使用的方法,我觉得是一个很好的入门材料,不过学成还是要靠个人,在使用的过程中,还是会不断地忘记,因此反反复复的阅读了这篇文章有四五遍,对于其中一些比较困难的知识点,甚至要用很久才能消化,但是只要能见坚持着看完,你会发现自己对于正则的运用能力就会显著提高。PHP正则表达式的定义:用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及 阅读全文

PHP的三点精华

2011-04-18 15:29 by 卫佳, 349 阅读, 收藏,
摘要: 我发现很多的PHP程序员,尤其是学习还不是很久的,都不知道PHP的精华所在。Perl当年如何在商界出名?其强大的正则表达式。而PHP呢?他是一门从Unix下发展起来的语言,当然也就继承了Perl的很多特点,同时C的优点都有。快速、简洁、明了,尤其是C程序员,PHP是至爱,我就是深爱着“PHP”(都忘了女友了:))。这里,我想来写一篇PHP的变量、数组应用技巧和PHP的正则表达式、PHP的模板应用,以后有时间再写PHP与COM、PHP与XML的完全结合。 1、变量、数组的应用技巧 (1)很多人用得不多的数组函数。foreach、list、each。分别举几个例子,应该就能知道了。例:<?p 阅读全文

PHP模板引擎Smarty详解

2011-04-18 15:28 by 卫佳, 760 阅读, 收藏,
摘要: PHPChina资讯:Smarty是由Monte Ohrt和Andrei Zmievski写出的PHP模板引擎。它不同于其他的模板引擎,比如FastTemplate或者patTemplate,其中主要原因就是Smarty会将模板转化成PHP脚本,并剔除每次使用该模板时都会出现在解析环节里的用来控制和错误检验的附加码。这个功能使Smarty在大型应用和高流量网站上有优异的表现。body brushSmarty除了模板编译还有很多其他的突出特性,我们会在后面详细的讨论。首先,我们来揭秘模板编译。“模板的编译”是什么意思?网页需要做什么样的编译?编译不是C++和Java也要做吗?是的,但是这里的编. 阅读全文

Php 生成静态html文件的三种方法

2011-04-16 15:31 by 卫佳, 451 阅读, 收藏,
摘要: 本文将介绍Php生成静态html文件的三种方法。1,下面使用模版的一个方法!<?php $fp = fopen ("templets.html","a"); if ($fp){ $fup = fread ($fp,filesize("templets.html")); $fp2 = fopen ("html.shtml","w"); if ($fwrite ($fp2,$fup)){ $fclose ($fp); $fcolse ($fp2); die ("写入模板成功" 阅读全文

不要那么心浮气躁

2011-04-16 15:30 by 卫佳, 251 阅读, 收藏,
摘要: 招聘一个程序员,唯一对你有意义的是他能写出好程序的能力。 很少人像这样去招人,他们更喜欢去挑剔程序员的个人癖好和性格缺点。 我一说出这样的话,人们大量的评论就会批评道:你错了,错了,完全的错了。 好的程序员需要具备沟通交流的技能,他们要有跟他人一起合作的能力。团队里不止你一个人! 事实上,人们会说:最好折中一下对技术上的要求,这样可以找出更能适应企业文化的人。 你不如这样说更合适:找不到那种技术上又好、又能适应企业文化的人,我就等着,一直找到为止。 我们很少有敢这样奢侈的公司,也许Google可以这样,就是Google这样的公司也一直处于一个“对招聘程序员感到绝望”的状态中。如果你决定去等,. 阅读全文

PHP6新特性

2011-04-16 15:30 by 卫佳, 339 阅读, 收藏,
摘要: 其实这个是很早的消息了,我也曾在论坛讨论过。 今年8月份PHP创始人Rasmus Lerdorf提出的一个wishlist: 1。完全抛弃全局变量wedding veil 2. 删除Magic Quotes 3. 增加一个输入过滤扩展代替Magic Quotes,提供一个机制让开发者很容易自己关闭或开启这个功能。而不是像现在的作法那样先判断服务器的GPC是否打开。 4. 默认加入opcode cache,对代码执行进行速度上的优化。目前大多用的是PECL或APC,但有一个官方的解决方案显然是比较好的。 5. 删除安全模式 safe_mode,改进open_basedir 6. 删除在PHP3/ 阅读全文

ThinkPHP采用模块和操作

2011-04-16 15:29 by 卫佳, 452 阅读, 收藏,
摘要: ThinkPHP采用模块和操作的方式来执行,首先,用户的请求会通过入口文件生成一个应用实例,应用控制器(我们称之为核心控制器)会管理整个用户执行的过程,并负责模块的调度和操作的执行,并且在最后销毁该应用实例。任何一个WEB行为都可以认为是一个模块的某个操作,系统会根据当前的URL来分析要执行的模块和操作。这个分析工作由URL调度器来实现,官方内置了Dispatcher类来完成该调度。 在Dispatcher调度器中,会根据http://servername/appName/moduleName/actionName/params来获取当前需要执行的项目(appName)、 模块(module. 阅读全文

权限控制思路

2011-04-15 16:19 by 卫佳, 277 阅读, 收藏,
摘要: 这里介绍一种很常用,也比较Professor 的权限控制思路。 为了方便,我们这里定义a ^ b 为:a 的b 次方,并且为每一个操作设定一个唯一的整数值,例如: 删除A → 0 修改A → 1 添加A → 2 删除B → 3 修改B → 4 添加B → 5 …… 理论上可以有N 个操作,这取决于你用于储存用户权限值的数据类型了。 这样,如果用户有权限:添加A → 2 ;删除B → 3 ;修改B →4 那用户的权限值 purview =2 ^ 2+2 ^ 3+2 ^ 4 =28 ,也就是2 的权的和了,化成二进制可以表示为11100 。 如果要验证用户是否有删除B的权限,就可以通过位与运算来实 阅读全文

代码的腐化之路

2011-04-15 16:19 by 卫佳, 274 阅读, 收藏,
摘要: 11年刚进入一个新部门,接手一个老项目,典型的legacy code, 一个jsp 好几千行,那叫一个乱。但是细细瞧瞧, 还有不少代码是不错的,依稀能看到漂亮代码的影子,可以想象,当初的架构应该还是优美的,只不过经过了若干程序员之手以后,代码慢慢的腐化了。 07 年做的一个项目也是这样,刚开始的时候设计了一个漂亮的架构,大家都严格遵循规则写代码,很注意维护架构的完整性和一致性,也做Code Review,坚决杜绝 dirty code。 随着时间的推移,项目的进度压力加大,什么原则了,纪律了都抛弃了,实现功能是第一要务,最后系统变成了一个难于理清的大怪物, 现在大家都盼望着它赶紧退休,推倒重写 阅读全文

Spring也许在慢慢成为EJB

2011-04-15 16:18 by 卫佳, 294 阅读, 收藏,
摘要: Spring也许在慢慢成为EJB依赖注入并不是不好,但Spring的依赖注入并不是很好,因为他要强迫很多人员了解别人的东西(你现在要用别人的一个接口,需要配置 Spring,那么你必然要找到该接口的实现类,甚至是多个实现类,需要了解别人内部的东西,这叫解耦吗),特别是开发人员水平不高的情况下,基本上就是 为了注入而注入,为了接口而接口。 Spring更合适在模块内部使用,但现在大部分开发人员都做不到模块化设计,而Spring大量的配置文件,将相关内容全局化了,进一步破坏了模块化设计的可能。 Spring的配置文件太多,而且基本上现在web开发中,都是全局化的,再加上autowire,维护难度远 阅读全文

get与post的区别与联系

2011-04-15 16:18 by 卫佳, 437 阅读, 收藏,
摘要: 这里来说说get与post的区别与联系:区别与联系: 1、get是从服务器上获取数据,post则是向服务器传送数据; 2、get将表单中数据的按照variable=value的 形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接。Post是将表单中的数据放在form的 数据体中,按照变量和值相对应的方式,传递到action所指向URL;fashion jewelry wholesale 所以从上述也可以得到另外两个结论: 1、get传送的数据量较小,不能大于2KB,这主要是因为受URL长度限制。post传送的数据量较大,所以在上传文件只能使 阅读全文