| PHP读取jar文件并生成jad文件 | ||
| 这几天在做一个手机软件的网站,在上传jar文件的时候,涉及到一个生成jad文件的问题,查找了很多资料都没找到解决办法,在和斯大哥讨论之后,终于找到一个比较好的办法。代码如下: $zip = zip_open ( berggi_email_english.jar ) ; if ( $zip ) { while ( $zip_entry(2008-07-21) | ||
| PHP通过header实现文本文件的下载 | ||
| 所谓实现文本文件的下载就是说当我们点击一个文本文件的链接的时候不是打开这个文件,而是弹出一个下载对话框让我们下载,这就是今天讨论的主要问题。PHP帮助文档里面关于PHP通过header触发下载的说明比较简单,而网上关于此方面的文章也少的可怜,有很多文章都无法实(2008-07-21) | ||
| php注入专题 | ||
| Php注入攻击是现今最流行的攻击方式,依靠它强大的灵活性吸引了广大黑迷。 在上一期的《php安全与注射专题》中林.linx主要讲述了php程序的各种漏洞,也讲到了php+mysql注入的问题,可是讲的注入的问题比较少,让我们感觉没有尽兴是吧. OK,这一期我将给大家伙仔仔细细的(2008-07-21) | ||
| php-fpm文档中文翻译 | ||
| fast-cgi是做啥用的 FastCGI是一个可伸缩的,高速地在web server和脚本语言间交互的接口。关于FastCGI技术的更多信息可以在 官方网站 和 这里 看到。 多数流行的web server都支持FastCGI。包括Apache(mod_fastcgi和mod_fcgid),Zeus,nginx和lighttpd。 FastCGI的主要(2008-06-28) | ||
| php扩展开发学习笔记 8 | ||
| hash 在php中,许多东西都是hash表。除了显而易见的数组以外,其实对象的属性,函数入口表、变量的符号表等在php内部也都是使用hash表来保存的。事实上,hash表里可以放任何一种数据类型的指针,并不限于zval*。 hash表的C结构叫HashTable。如果要创建一个HashTable,(2008-06-28) | ||
| php扩展开发学习笔记 7 | ||
| 引用计数 php采用的内存管理和垃圾回收方法是基于引用计数的。 之前说过 ,在zval结构里有一个refcount是表示引用计数,还有一个is_ref表示是否是个引用变量。那么php代码的实际运行中,又是如何处理的呢? 比如这样的php代码: $a = hello; $b = $a; 这时候并不像很多(2008-06-28) | ||
| php扩展开发学习笔记 6 | ||
| 内存管理 在C语言里,分配内存有一组alloc函数,比如malloc、calloc、realloc。php为了更方便,更安全地管理内存,自己提供了一组内存分配的函数:emalloc、ecalloc、erealloc,此外还有estrdup用于拷贝内存,efree用于释放由前面那些函数分配的内存。他们的用法和标准(2008-06-28) | ||
| php扩展开发学习笔记 5 | ||
| 有许多函数在php手册里把参数或返回值类型写为mixed。那么在扩展中是如何处理的呢?所谓mixed往往就是直接解析会返回zval。 先看参数处理,还是前面用过的zend_parse_parameters: zval* item; zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, z, item); 这很简单。(2008-06-28) | ||
| php扩展开发学习笔记 4 | ||
| zval和zvalue_value 之前一直跳过的数组和对象,以及需要返回或者处理多种类型时,都需要了解php内部是如何保存值的。 php内部保存值的基本单位是zval。它的C结构定义如下: typedef struct _zval_struct { zvalue_value value; zend_uint refcount; zend_uchar type;(2008-06-28) | ||
| php扩展开发学习笔记 3 | ||
| 取得参数 既然是函数总要能获取参数。在php扩展里能通过zend_parse_parameters()将参数解析为一些C的对应类型。 如 long foo; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, l, foo) == FAILURE) { RETURN_NULL(); } 会试图解析参数为整数。将值放入foo。失败(2008-06-28) | ||
| php扩展开发学习笔记 2 | ||
| 函数返回值 php的api里定义了很多宏来实现扩展里函数的返回值。RETURN_BOOL、RETURN_LONG、RETURN_DOUBLE这3个宏分别用于返回对应的值。只在参数里填入需要返回的值即可。如RETURN_LONG(1024);。对于string,则有RETURN_STRING和RETURN_STRINGL。其中后者可以指定字符(2008-06-28) | ||
| php扩展开发学习笔记 1 | ||
| 开发环境设置见《用vc 2008编译php扩展》。 写一个扩展最基本的就是编写函数。我这里是用skel生成了一个algorithm的扩展的骨架。 php扩展中的函数用PHP_FUNCTION宏定义。首先在.h文件中写一个定义,如skel生成的代码为例:PHP_FUNCTION(confirm_algorithm_compiled);(2008-06-28) | ||
| php设计模式介绍之单件模式 [3] | ||
| 静态方式 关于全局变量的问题,甚至隐藏在getInstance()中的全局变量中也存在。因为全局变量在脚本的任何地方都有效,在没有注意到的情况下,你依然有可能破坏这个全局变量, 在getInstance()方法内部使用静态变量来存储Singleton是一个显得干净的办法。第一个代码片断(2008-06-28) | ||
| php设计模式介绍之单件模式 [2] | ||
| 样本代码 单件模式是一个很有趣的模式。让我们用PHP4和PHP5两种方式来探究它的实现过程,现在从PHP4开始。 全局方式 理论上说,一个全局变量可以生成一个完美的单件,但全局变量可能被修改:在代码运行过程中,不能保证全局变量指向的是一个对象。因而,不让全局变量在(2008-06-28) | ||
| php设计模式介绍之单件模式 [1] | ||
| 几乎所有面向对象的程序中,总有一两个资源被创建出来,在程序应用中持续被共享使用。例如,这样的一个资源,在一个电子商务程序的数据库连接中使用:这个连接在应用程序启动时初始化,程序于是可以有效的执行;当程序结束时,这个连接最终被断开并销毁。如果是你写的(2008-06-28) | ||
| Zope的优点及和Apache+PHP+MySQL的比较 | ||
| Webmaster 注:今天看到一篇好文章,贴出来。因为实在是觉得有必要让来看我网站的人知道 Zope 这个东西,所以转载了这篇文章。这是我的第一篇转载文章。 Zope能和Apache+PHP+MySQL进行比较是因为它即是http服务器,又是数据库,又包含脚本编程语言。现在向大家推荐Zope(2008-05-07) | ||
| Windows 下的 PHP 扩展编程 | ||
| PHP 尽管提供了大量有用的函数,但是在特殊情况下还可能需要进行扩展编程,比如大量的 PECL(PHP Extension Community Library)就是以扩展的形式提供的(动态链接库dll文件),它们比 PEAR 的运行效率要高很多。 PHP 扩展是用 C 或 C++ 编写的,需要编译成动态连接库 dl(2008-05-06) | ||
| PHP面向对象、类经典教程[2] | ||
| 例 10.13. 调用父类的方法 ? php class MyClass {protectedfunction myFunc (){echo MyClass::myFunc()n ;} } class OtherClass extends MyClass { //Overrideparent'sdefinition publicfunction myFunc () { //Butstillcalltheparentfunction parent :: myFunc (); e(2007-09-21) | ||
| PHP面向对象、类经典教程[1] | ||
| 这是一篇很详细的介绍PHP面向对象的教程,转载下载希望对你和你的朋友学习PHP有所帮助!谢谢您对本站的支持!:) 由于php手册从这一章节开始没有翻译,都是英文,近来自己开始学习php5中的面向对象编程,为方便学习和阅读,所以把其翻译之,发上来与大家分享,有不妥(2007-09-21) | ||
| 用 Xdebug 修正 PHP 应用程序中的错误(5) | ||
| 跟踪代码 解决错误 如解开神秘谋杀之谜 通常要求构造详细的时间线。例如,内存泄漏通常不会把自身表明为一个错误计算。相反,操作将正常进行,直至内存用尽,然后应用程序突然终止。如果内存泄漏由于某些请求而恶化,可能会不断出现错误并且难以预测。在内存使用量与时(2007-09-21) | ||