06 2013 档案
摘要:如果想要加载一个目录下的多个类文件,并且含有一定的特征。如:D:/AppServ/www/myExercise/下新建了几个文件夹和文件文件夹mods->inmod.mod.php ->oumod.mod.php文件夹libs->inlib.lib.php类名与文件有一定的关联,这儿的类名与文件的第一个.号前相同,后面都最为后缀。inmod.mod.php中的代码:';oumod::test();不会报错,仍然会输出类中的结果,说明类已经加载进来了。结果如下:inmod testoumod test
阅读全文
摘要:一、环境搭建和ZF安装 *[注]本节内容大部分来至ZendFramework官方手册 1.1 Zend Framework下载 Zend Framework 使用面向对象的PHP5 构建,需要 PHP 5.1.4 或更高版本。 请查阅 附录系统需求 了解更多信息。一旦合适的 PHP 环境建立起来,下一步是拥有一个 Zend Framework 的副本,可以通过下面的官方认可的途径获得:下载最新的稳定版本。 这个版本有 .zip 和 .tar.gz 两种格式,对于 Zend Framework 的新手来说是不错的选择。下载最新的每日快照(nightly snapshot)。 对于用于...
阅读全文
摘要:虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。下面是对C++的虚函数这玩意儿的理解。一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始)简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言来解释就是实现以共同的方法,但因个体差异而采用不同的策略。下面来看一段简单的代码class A{public:void print(){ coutprint();p2->print();}运行一下看看
阅读全文
摘要:PHP输入流php://input在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$_POST数组。所以,这里主要探讨php输入流php://input对一php://input介绍,PHP官方手册文档有一段话对它进行了很明确地概述。“php://input allows you to read raw POST data. It is a less memoryintensive alternative to $HTTP_RAW_POST_DATA and does not need any specialphp.ini directi
阅读全文
摘要:root@DB-02 ~]# mysql -u root-bash: mysql: command not found原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:# ln -s /usr/local/mysql/bin/mysql /usr/bin
阅读全文
摘要:C++类的const成员函数doubleSales_item::avg_price()const{}const关键字表明这是一个const成员函数,它不可以修改Sales_item类的成员变量。如果没有为一个类显示的定义任何的构造函数,编译器会自动为这个类生成默认的构造函数,成为“合成的默认构造函数”。这样的话,构造函数不会自动初始化内置类型的成员。对于类类型的成员,比如string,会用string自身的默认构造函数进行初始化。复制形参函数调用的时候并不考虑形参是否非const——函数操纵的只是副本。函数无法改变实参。结果是,既可以将const对象传递给cosnt形参,也可以传递给非cons
阅读全文
摘要:Zend Framework学习日记(2)--HelloWorld篇这一篇主要演示如何用zf命令行工具建立一个基于Zend Framework框架的工程,也是我初学Zend Framework的小练习。(1)新建工程(Windows环境下)打开CMD,将目录切换到你将要新建工程所在的目录下,输入“zf create project HelloWorld”,如下[c-sharp]view plaincopyD:/workphp/www>zfcreateprojectHelloWorldCreatingprojectatD:/workphp/www/HelloWorldNote:Thisco
阅读全文
摘要:Zend Framework学习日记(1)--环境搭建篇(1)开发工具Zend Framework框架:http://framework.zend.com/download/latest包含2个目录bin和library,bin目录里面有zf命令行工具(包括Windows和Mac OS X平台),而library目录就是Zend Framework的各种组件放置的地方,可以复制该目录到PHP工程下,方便IDE可以查找到Zend Framework相关文件,以免报错。Zend Studio 8:http://www.zendstudio.net/zend-studio-all-in-one-do
阅读全文
摘要:简 介英文版下载:PHP 5 Power ProgrammingPHP取得成功的一个主要原因之一是她拥有大量的可用扩展。web开发者无论有何种需求,这种需求最有可能在PHP发行包里找到。PHP发行包包括支持各种数据库,图形文件格式,压缩,XML技术扩展在内的许多扩展。扩展API的引入使PHP3取得了巨大的进展,扩展API机制使PHP开发社区很容易的开发出几十种扩展。现在,两个版本过去了,API仍然和PHP3时的非常相似。扩展主要的思想是:尽可能的从扩展编写者那里隐藏PHP的内部机制和脚本引擎本身,仅仅需要开发者熟悉API。有两个理由需要自己编写PHP扩展。第一个理由是:PHP需要支持一项她还未
阅读全文
摘要:大家都知道,不同字符编码,其在内存占用的字节数不一样。如ASCII编码字符占用1个字节,UTF-8编码的中文字符是3字节,GBK为2个字节。 PHP 也自带几种字符串截取函数,其中常用到的就是 substr 和 mb_substr。 使用substr截取中文字符时会出现乱码,这是因为substr是按字节来截取的。即UTF-8编码的中文,使用substr截取,只会截取1/3个中文,当然出现乱码了。mb_substr(string$str,int$start[,int$length[,string$encoding]] ) 中的参数$encoding可以指定编码,如果省略,则使用内部字符编码。 如
阅读全文
摘要:多态(Polymorphism)大家应该都不陌生,它是我们开发面向对象系统的“老朋友”了。但是老朋友也会有“烦心”的时候啊,呵呵。有时候 不注意,还真会被它难到。譬如下面这个例子(thankHayden)。大家可以先不看下面的答案,在自己脑海中运行一道,看看自己想的跟实际结果是否 相符。publicclassPolymorphism{publicstaticvoidmain(String[]args){Ab=newB();b.fb();}}classA{publicA(){}publicvoidfa(){System.out.println("CLASSA:FunctionfaRun
阅读全文
摘要:override->重写(=覆盖)、overload->重载、polymorphism -> 多态override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。重写(覆盖)的规则: 1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载. 2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。 3、重写的方法的返回值必须和被重写的方法的返回一致; 4、重写的方法所抛出的异常必须和被重写方法的所抛出的异常一致,
阅读全文
摘要:eval函数的工作原理eval函数会评估一个给定的含有JavaScript代码的字符串,并且试图去执行包含在字符串里的表达式或者一系列的合法的JavaScript语句。eval函数将把最后一个表达式或者语句所包含的值或引用作为返回值。举例说明eval评估JavaScript表达式var bar = 'bar';var foobar = eval('"foo" + bar');alert(foobar);eval评估JavaScript语句var bar = 'bar';// if variable bar equals
阅读全文
摘要:operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。一、为什么使用操作符重载?对于系统的所有操作符,一般情况下,只支持基本数据类型和标准库中提供的class,对于用户自己定义的class,如果想支持基本操作,比如比较大小,判断是否相等,等等,则需要用户自己来定义关于这个操作符的具体实现。比如,判断两个人是否一样大,我们默认的规则是按照其年龄来比较,所
阅读全文
摘要:一、C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗?能!struct能继承吗?能!!struct能实现多态吗?能!!!最本质的一个区别就是默认的访问控制,体现在两个方面:1)默认的继承访问权限。struct是public的,class是private的。写如下的代码:struct A{char a;};struct B : A{char b;};这个时候B是public继承A的。如果都将上面的struct改成class,那么B是private继承A的。这就是默认的继承访问权限。所以我们在
阅读全文
摘要:一、要想使用curl_setopt 这个函数必须在服务器里边进行编译curl这个组件,怎么安装编译这个组件请具体到google搜索二、curl_setopt的php帮助文档的解释bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。下列选项的值将被作为长整形使用(在option参数中指定): CURLOPT_INFILESIZE: 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小。CURLOPT_VERB.
阅读全文
摘要:curl_setopt (PHP 4 >= 4.0.2) curl_setopt -- 为CURL调用设置一个选项 描述 bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。 下列选项的值将被作为长整形使用(在option参数中指定): CURLOPT_INFILESIZE: 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小。 CURLOPT_VERBOSE: 如果你想CURL报告每一件意外的...
阅读全文
摘要:主要是用到二进制的异或运算。如:加密方法:设置一密码,如code=123,将字符量ch与密码code做异或运算(ch∧code),则产生ch的加密码;而将加密码ch与密码code做异或运算将还原为解码。如:ch=’A’,ch∧code等价于:01000001∧01111011,异或结果为加密码:00...
阅读全文
摘要:一、“按位与”运算符(&) 1、运算规则 参加运算的两个数据,按二进位进行“与”运算,如果两个相应的二进位都为1,则该位的结果值为1,否则为0,即: 0&0=0,0&1=0,1&0=0,1&1=1. 2、用途 (1)清零 运算对象:原来的数中为1的位,新数中相应位为0。 (2)取一个数中某些指定位。...
阅读全文
摘要:十进制与二进制转换之相互算法十进制转二进制:用2辗转相除至结果为1将余数和最后的1从下向上倒序写 就是结果例如302302/2 = 151 余0151/2 = 75 余175/2 = 37 余137/2 = 18 余118/2 = 9 余09/2 = 4 余14/2 = 2 余02/2 = 1 余0故二进制为100101110二进制转十进制从最后一位开始算,依次列为第0、1、2...位第n位的数(0或1)乘以2的n次方得到的结果相加就是答案例如:01101011.转十进制:第0位:1乘2的0次方=11乘2的1次方=20乘2的2次方=01乘2的3次方=80乘2的4次方=01乘2的5次方=321乘
阅读全文
摘要:一、关于一般常量声明或定义的格式如下:const <类型说明符> <变量名> = <常量或常量表达式>; [1]<类型说明符> const <变量名> = <常量或常量表达式>; [2][1]和[2]的定义是完全等价的。例如:整形int(或其他内置类型:float,double,char)const int bufSize = 512;或者int const bufSize = 512;因为常量在定义后就不能被修改,所以定义时必须初始化。bufSize = 128; // error:attempt to write to
阅读全文
摘要:一、什么是RBAC基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。二、ThinkPHP中的RBAC先看下官方给的实例所用到的数据表,通
阅读全文
摘要:类似于dreamhost这类主机服务商,是显示fopen的使用 的。使用php的curl可以实现支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL证书、HTTP POST、HTTP PUT 、FTP 上传,kerberos、基于HTT格式的上传、代理、cookie、用户+口令证明、文件传送恢复、http代理通道就最常用的来说,是基于http的 get和post方法。代码实现:1、http的get实现Php代码$ch=curl_init("http://www.domain.com/api/index
阅读全文
摘要:目录一、什么是sizeof二、sizeof用法三、基本数据类型的sizeof四、复杂数据类型的sizeof及其数据对齐问题五、class类型的sizeof特别探讨六、总结一、什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t. 看到return这个字眼
阅读全文
摘要:打开php.ini,首先找到file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹upload_max_filesize = 8m ;望文生意,即允许上传文件大小的最大值。默认为2Mpost_max_size = 8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。进一步
阅读全文
摘要:位运算是对表示数据的基本单元进行"加和","减除"的方法.首先一个位(bit)单位就是0或1,硬件表示就是一个肪冲的开和,这是硬软通迅最基本的单元.我们所说的一个字节(byte)需要8个位来表示,一个字(WORD)要两个字节,16个位表示.一个双字(DWORD)要两个字,四个字节,32个位来表示.0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0|- bit 31... bit 0 - ||- BYTE 3-| |- BYTE 2 -||- BYTE 1 -| |-BYTE0 -
阅读全文
摘要:二维数组和指针⑴ 用指针表示二维数组元素。要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。我们知道,一个二维数组在计算机中存储时,是按照先行后列的顺序依次存储的,当把每一行看作一个整体,即视为一个大的数组元素时,这个存储的二维数组也就变成了一个一维数组了。而每个大数组元素对应二维数组的一行,我们就称之为行数组元素,显然每个行数组元素都是一个一维数组下面我们讨论指针和二维数组元素的对应关系,清楚了二者之间的关系,就能用指针处理二维数组了。设p是指向数组a的指针变量,若有:p=a[0];则p+j将指向a[0]数组中的元素a[0][j]。由于a[0]、a[1]┅a[M-1]等各个行
阅读全文
摘要:今天看到了c++的指针,按照上面敲了一个简单的例子,如下:int inval = 1024; int *pi = &inval; //int *ppi = pi; //ppi与pi都指向inval的地址,即指向同一地址 int **ppi = π //ppi指针指向pi指针 cout << "The value of inval\n"; cout << "direct value: " << inval << "\n"; cout << "in
阅读全文