Welcome 微信登录

首页 / 网页编程 / PHP

PHP的资源数据类型

PHP的资源数据类型

PHP的资源数据类型2013-09-07资源数据类型迄今为止, 你都是工作在非常基础的用户空间数据类型上, 字符串, 数值, TRUE/FALSE等值. 即便上一章你已经开始接触数组了, 但也只是收集这些基础数据类型的数组.复杂的结构体现实世界中, 你通常需要在更加复杂的数据集合下工作, 通常涉及到晦涩的结构体指针. 一个常见的晦涩的结构体指针示例就是stdio的文件描述符, 即便是在C语言中也只是一个指针.#include <stdio.h>...
php4的对象详解

php4的对象详解

php4的对象详解2013-09-08php4的对象曾几何时, 在很早的版本中, php还不支持任何的面向对象编程语法. 在php4中引入了Zend引擎(ZE1), 出现了几个新的特性, 其中就包括对象数据类型.php对象类型的演化第一次的面向对象编程(OOP)支持仅实现了对象关联的语义. 用一个php内核开发者的话来说就是"php4的对象只是将一个数组和一些方法绑定到了一起". 它就是现在你要研究的php对象.Zend引擎(ZE2)的...
详解php5对象

详解php5对象

详解php5对象2013-09-08php5对象将php5的对象和它的先辈php4对象进行比较实在有些不公平, 不过php5对象使用的API函数还是遵循php4的API构建的. 如果你已经阅读了第10章"php4对象", 你将会对本章内容多少有些熟悉. 在开始本章之前, 可以像第10章开始时一样, 重命名扩展为sample3并清理多余的代码, 只保留扩展的骨架代码.进化史在php5对象变量中有两个关键的组件. 第一个是一个数值的标识, ...
详解php的启动过程

详解php的启动过程

详解php的启动过程2013-09-08启动, 终止, 以及其中的一些点在本书中, 你已经多次使用MINIT函数在php加载你扩展的共享库时执行初始化任务. 在第1章"php的生命周期"中, 你还学习了其他三个启动/终止函数, 与MINIT对应的是MSHUTDOWN, 另外还有一对RINIT/RSHUTDOWN方法在每个页面请求启动和终止时被调用.生命周期除了这四个直接链接到模块结构的函数外, 还有两个函数仅用于线程环境, 用来处理每个...
php中流的访问

php中流的访问

php中流的访问2013-09-08访问流PHP用户空间中所有的文件I/O处理都是通过php 4.3引入的php流包装层处理的. 在内部, 扩展代码可以选择使用stdio或posix文件处理和本地文件系统或伯克利域套接字进行通信, 或者也可以调用和用户空间流I/O相同的API.流的概览通常, 直接的文件描述符相比调用流包装层消耗更少的CPU和内存; 然而, 这样会将实现某个特定协议的所有工作都堆积到作为扩展开发者的你身上. 通过挂钩到流包装层, 你的扩展代...
php中流的实现

php中流的实现

php中流的实现2013-09-09实现流php的流最强力的特性之一是它可以访问众多数据源: 普通文件, 压缩文件, 网络透明通道, 加密网络, 命名管道以及域套接字, 它们对于用户空间以及内部都是统一的API.php流的表象之下对于给定的流实例, 比如文件流和网络流, 它们的不同在于上一章你使用的流创建函数返回的php_stream结构体中的ops成员.typedef struct _php_stream {...php_stream_ops *ops;...
php中有趣的流

php中有趣的流

php中有趣的流2013-09-09有趣的流php常被提起的一个特性是流上下文. 这个可选的参数甚至在用户空间大多数流创建相关的函数中都可用, 它作为一个泛化的框架用于向给定包装器或流实现传入/传出额外的信息.上下文每个流的上下文包含两种内部消息类型. 首先最常用的是上下文选项. 这些值被安排在上下文中一个二维数组中, 通常用于改变流包装器的初始化行为. 还有一种则是上下文参数, 它对于包装器是未知的, 当前提供了一种方式用于在流包装层内部的事件通知.ph...
php源代码的配置和链接

php源代码的配置和链接

php源代码的配置和链接2013-09-09配置和链接所有前面示例中的代码, 都是你曾经在php用户空间编写过代码的C语言的独立版本. 如果你做的项目需要和php扩展进行粘合, 那么你就至少需要链接一个外部库.autoconf在一个简单的应用中, 你可能已经在你的Makefile中增加了下面这样的CFLAGS和LDFLAGS.CFLAGS = ${CFLAGS} -I/usr/local/foobar/includeLDFLAGS = ${LDFLAGS}...
php的扩展自动生成

php的扩展自动生成

php的扩展自动生成2013-09-09扩展生成毫无疑问你已经注意到, 每个php扩展都包含一些非常公共的并且非常单调的结构和文件. 当开始一个新扩展开发的时候, 如果这些公共的结构已经存在, 我们只用考虑填充功能代码是很有意义的. 为此, 在php中包含了一个简单但是很有用的shell脚本.ext_skel切换到你的php源代码树下ext/目录中, 执行下面的命令:jdoe@devbox:/home/jdoe/cvs/php-src/ext/$ ./ex...
设置嵌入php的宿主环境

设置嵌入php的宿主环境

设置嵌入php的宿主环境2013-09-10设置宿主环境现在你已经了解了PHPAPI的世界, 并可以使用zval以及语言内部扩展机制执行很多工作了, 是时候转移目标用它做它最擅长的事情了: 解释脚本代码.嵌入式SAPI回顾介绍中, php构建了一个层级系统. 最高层是提供用户空间函数和类库的所有扩展. 同时, 其下是服务API(SAPI)层, 它扮演了webserver(比如apache, iis以及命令行接口cli)的接口.在这许多sapi实现中有一个特...
php的高级嵌入式

php的高级嵌入式

php的高级嵌入式2013-09-10高级嵌入式php的嵌入式能够提供的可不仅仅是同步的加载和执行脚本. 通过理解php的执行模块各个部分是怎样组合的, 甚至给出一个脚本还可以回调到你的宿主应用中. 本章将涉及SAPI层提供的I/O钩子带来的好处, 展开你已经从前面的主题中获取到信息的执行模块进行学习.回调到php中除了加载外部的脚本, 和你在上一章看到的类似, 你的php嵌入式应用, 下面将实现一个类似于用户空间eval()的命令.int zend_ev...
利用PHP应用程序搜索并集成Google+ 活动流

利用PHP应用程序搜索并集成Google+ 活动流

利用PHP应用程序搜索并集成Google+ 活动流2013-11-19简介Google+ 是社交网络行业的新产品,是 Google 构建社交网络的最新尝试,可让用户轻松地与好友共享新闻和文件,并与他们进行互动。它似乎成功抓住了公众的想象力。据报道,截止 2011 年 12 月,每天都有 625,000 个新用户注册 Google+,用户总数已达到 6200 万。常用缩写词API:应用程序编程接口HTTP:超文本传输协议JSON:JavaScript 对象符...
Nginx + PHP缓存详解

Nginx + PHP缓存详解

Nginx + PHP缓存详解2013-11-19Nginx缓存nginx有两种缓存机制:fastcgi_cache和proxy_cache下面我们来说说这两种缓存机制的区别吧proxy_cache作用是缓存后端服务器的内容,可能是任何内容,包括静态的和动态的fastcgi_cache作用是缓存fastcgi生成的内容,很多情况是php生成的动态内容proxy_cache缓存减少了nginx与后端通信的次数,节省了传输时间和后端带宽fastcgi_cach...
<< 661 662 663 664 665 666 667 668 669 670 >>