PHP
21蓝冰
清华大学
展开
-
php接受xml和发送(post)xml
接收xml:$xml = file_get_contents(php://input); 发送(post):$xml_data = ...";$url = http://dest_url;$header[] = "Content-type: text/xml";//定义content-type为xmlcurl_setopt($ch,CURLOPT_URL,$ur转载 2012-09-28 15:53:17 · 687 阅读 · 0 评论 -
PHP字符串的编码问题
大家都知道,不同字符编码,其在内存占用的字节数不一样。如ASCII编码字符占用1个字节,UTF-8编码的中文字符是3字节,GBK为2个字节。 PHP 也自带几种字符串截取函数,其中常用到的就是 substr 和 mb_substr。 使用substr截取中文字符时会出现乱码,这是因为substr是按字节来截取的。即UTF-8编码的中文,使用substr截取,只会截取1转载 2013-04-10 15:02:47 · 600 阅读 · 0 评论 -
PHP输入流php://input
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转载 2013-04-10 17:51:27 · 3945 阅读 · 0 评论 -
PHP异常处理详解
异常处理(又称为错误处理)功能提供了处理程序运行时出现的错误或异常情况的方法。 异常处理通常是防止未知错误产生所采取的处理措施。异常处理的好处是你不用再绞尽脑汁去考虑各种错误,这为处理某一类错误提供了一个很有效的方法,使编程效率大大提高。当异常被触发时,通常会发生: 当前代码状态被保存 代码执行被切换到预定义的异常处理器函数 根转载 2013-04-10 16:12:04 · 2098 阅读 · 0 评论 -
PHP SOCKET编程
1. 预备知识 一直以来很少看到有多少人使用php的socket模块来做一些事情,大概大家都把它定位在脚本语言的范畴内吧,但是其实php的socket模块可以做很多事情,包括做ftplist,http post提交,smtp提交,组包并进行特殊报文的交互(如smpp协议),whois查询。这些都是比较常见的查询。特别是php的socket扩展库可以做的事情简直不会比c差多少转载 2013-04-10 17:49:43 · 891 阅读 · 0 评论 -
PHP的类自动加载机制
PHP的类自动加载机制 在PHP开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来。这个在小规模开发的时候,没什么大问题。但在大型的开发项目中,这么做会产生大量的require或者include方法调用,这样不因降低效率,而且使得代码难以维护,况且require_once的代价很大。在PHP5之前,各个PH转载 2013-04-10 16:13:53 · 586 阅读 · 0 评论 -
php的serialize序列化和json性能测试
最近需要对大数组做存储,需要在serialize序列化和json之间做了选择。因此需要做了性能测试。在php5.2之前对数组存储的时候,大都使用serialize系列化。php5.2之后,开始内置了 JSON 的支持。在网上看到有些资料说:json_encode和json_decode比内置的serialize和unserialize函数要高效。耳闻不如眼见,眼见不一定为实。那就用实际数据转载 2013-04-10 15:25:35 · 664 阅读 · 0 评论 -
gzip压缩输出
一、gzip介绍 gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark Adler。1992年10月31日第一次公开发布,版本号是0.1,目前的稳定版本是1.2.4。 Gzip主要用于Unix系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件转载 2013-04-09 18:59:57 · 603 阅读 · 0 评论 -
PHP5.4最新特性
官网:ChangeLog-5.php#5.4.0原文Oracle:LAMP 体系有了新的竞争,但此版本中的特性使 PHP 再次挑战极限。 稍微做了修改。:概述总结:1. 内存和性能改进:大型 PHP 应用程序中可节省 20-50% 的内存。通过各种优化使性能提高 10-30%2. 支持特性Trait3. 精简数组语法,可以定义短数组4. 函数数组解除引用,支持Array d转载 2013-04-09 18:50:37 · 2002 阅读 · 0 评论 -
PHP高效率写法(详解原因)
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。 当然了,这个测试方法需要在十万级以上次执行,效果才明显。 其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存转载 2013-04-09 18:44:59 · 587 阅读 · 0 评论 -
PHP中引用的详解(引用计数、写时拷贝)
《PHP5中文手册》内容中"引用的解释"一文的摘要:1. PHP中引用的特性PHP中引用意味着用不同的名字访问同一个变量内容,引用不是C的指针(C语言中的指针里面存储的是变量的内容,在内存中存放的地址),是变量的另外一个别名或者映射。注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。最接近的比喻是 Unix 的文件名和文件本身――变量名是目录条目,而变转载 2013-04-09 17:21:46 · 586 阅读 · 0 评论 -
php STDIN
最近在看perl,觉得perl的标准输入挺好的,就想找找看PHP的,原来PHP也有类似的啊,我真OUT了[php] view plaincopywhile($str = fread(STDIN,1000)){ echo "you print:".$str; } [php] view plaincopy//P转载 2013-04-09 17:57:44 · 1069 阅读 · 0 评论 -
PHP编程注意事项
1、php隐性的三元操作符(?:)优先级问题:例1:$person = $who or $person = "laruence"; //实际上是等同于: $person = empty($who)? "laruence" : $who; 例2$arr = array(1=>1,3=>3); $i = 2; $a = ’test转载 2013-04-09 14:51:26 · 910 阅读 · 0 评论 -
PHP缓存之APC-简介、存储结构和操作
APC简介APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”。它为我们提供了缓存和优化PHP的中间代码的框架。 APC的缓存分两部分:系统缓存和用户数据缓存。系统缓存 它是指APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记。如果未过期,则使用缓存的中间代码运行。默认缓存 3600s(一小时)。但是这样仍会浪费大量CPU时间。因转载 2012-10-18 15:25:02 · 658 阅读 · 0 评论 -
Apc缓存Opcode
1、PHP执行PHP的运行阶段也分成三个阶段:Parse。语法分析阶段。Compile。编译产出opcode中间码。Execute。运行,动态运行进行输出。 由于PHP是个解释型语言执行的时候先得把程序读进来,然后由Zend引擎编译成opcode。转载 2012-10-18 15:32:29 · 711 阅读 · 0 评论 -
PHP中spl_autoload_register函数的用法
spl_autoload_register(PHP 5 >= 5.1.2)spl_autoload_register — 注册__autoload()函数说明bool spl_autoload_register ([ callback $autoload_function ] )将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。如果在你转载 2012-10-10 12:08:20 · 594 阅读 · 0 评论 -
深入理解PHP的引用(References in PHP)
深入理解PHP的引用(References in PHP) huangguisu为了深入理解PHP的引用,找到一篇老外的东西: http://derickrethans.nl/talks/phparch-php-variables-article很多内容还是直接看英文版比较好,翻译过来有时候词不达意。基础知识php在zend里面存储的变量,PHP中每个变量都有对应的 zval转载 2013-04-10 16:24:31 · 836 阅读 · 0 评论