E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
PHP内核
开扒
php内核
函数,第三篇 implode
一开始觉得implode挺容易实现,但是写着写着才发现是挺复杂的,不说啦 来看看implode的用法吧 1 <?php 2 $arr = array('Hello','World!','Beautiful','Day!'); 3 echo implode(" ",$arr); 4 ?> 上面会输出 Hello World! Beautiful
·
2015-11-11 05:29
PHP
开扒
php内核
函数,第二篇 hex2bin
从上一篇我们得知怎样把ascii变成16进制显示,这篇我们是怎样把16进制变成ascii显示 我们还是从分析开始吧 先看这个函数的介绍吧 string hex2bin ( string $data ) 如果输入的十六进制字符串是奇数长数或者无效的十六进制字符串将会抛出 E_WARNING 级别的错误。 先看个例子 <?php $hex = hex2bin("657861
·
2015-11-11 05:28
PHP
开扒
php内核
函数,第一篇 bin2hex
这段时间真的比较有时间,所以自己用c写一下bin2hex啦 写个php的人都知道,这是个比较熟悉的函数吧,没有什么高深,只是把输入的东西以16进制输出吧了 先分析一下,这个函数要怎么写吧,他会有一定的逻辑,那么他就有循环体和终结条件啦 我们先看看怎样把一个数转为16进制吧 960 / 16 = 60 余数为 0 60 / 16 = 3 余数为 12 3 /16 = 0.XX 余数为 3
·
2015-11-11 05:26
PHP
深入理解php中的ini配置(1)
我只是想从某个特定的角度去挖掘php的实现机制,会涉及到一些
php内核
方面的知识:-) 使用php的同学都知道php.ini配置的生效会贯穿整个SAPI的生命周期。
·
2015-11-11 02:07
PHP
11.
PHP内核
探索:嵌入式PHP
PHP内核
探索:嵌入式PHP
从PHP源码目录结构的介绍以及PHP生命周期可知:嵌入式PHP类似CLI,也是SAPI接口的另一种实现。 一般情况下,它的一个请求的生命周期也会和其它的SAPI一样:模块初始化=>请求初始化=>处理请求=>关闭请求=>关闭模 块。 当然,这只是理想情况。因为特定的应用由自己特殊的需求,只是在处理PHP脚本这个环节基本一致。 对于嵌入式PHP或许我们了解比较少,或者说根本用
·
2015-11-10 21:45
PHP
12.
PHP内核
探索:PHP的FastCGI
CGI全称是“通用网关接口”(Common Gateway Interface), 它可以让一个客户端,从网页浏览器向执行在Web服务器上的程序请求数据。 CGI描述了客户端和这个程序之间传输数据的一种标准。 CGI的一个目的是要独立于任何语言的,所以CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。 如php,perl,tcl等。 FastCGI是Web服务器和处理程序之
·
2015-11-10 21:45
PHP
10.
PHP内核
探索:Apache运行与钩子函数
Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台、高效和稳定而闻名。按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额。尤其是在 X(Unix/Linux)平台上,Apache是最常见的选择。其它的Web Server产品,比如IIS,只能运行在Windows平台上,是基于微软.Net架构技术的不二选择。 Apache并不是没有缺点,它最为诟病的
·
2015-11-10 21:44
apache
9.
PHP内核
探索:通过mod_php5支持PHP
Apache对PHP的支持是通过Apache的模块mod_php5来支持的。如果希望Apache支持PHP的话,在./configure步 骤需要指定--with-apxs2=/usr/local/apache2/bin/apxs 表示告诉编译器通过Apache的mod_php5 /apxs来提供对PHP5的解析。 在最后一步make install的时候我们会看到将动态链接库libp
·
2015-11-10 21:43
php5
7.
PHP内核
探索:Apache模块介绍
Apache概述 Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台、高效和稳定而闻名。按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额。尤其是在 X(Unix/Linux)平台上,Apache是最常见的选择。其它的Web Server产品,比如IIS,只能运行在Windows平台上,是基于微软.Net架构技术的不二选择。 Apache支持许多
·
2015-11-10 21:43
apache
8.
PHP内核
探索:再次探讨SAPI
在PHP的生命周期的各个阶段,一些与服务相关的操作都是通过SAPI接口实现。 这些内置实现的物理位置在PHP源码的SAPI目录。这个目录存放了PHP对各个服务器抽象层的代码, 例如命令行程序的实现,Apache的mod_php模块实现以及fastcgi的实现等等。 在各个服务器抽象层之间遵守着相同的约定,这里我们称之为SAPI接口。 每个SAPI实现都是一个_sapi_module_struct
·
2015-11-10 21:42
PHP
6.
PHP内核
探索:Zend引擎
相信很多人都听说过 Zend Engine 这个名词,也有很多人知道 Zend Engine 就是 PHP 语言的核心,但若要问一句:Zend Engine 到底存在于何处?或者说,Zend Engine 究竟是在什么时候怎么发挥作用让 PHP 源码输出我们想要的东西的? Zend引擎是PHP实现的核心,提供了语言实现上的基础设施。例如:PHP的语法实现,脚本的编译运行环境, 扩展机制以及内存管
·
2015-11-10 21:41
Zend
5.
PHP内核
探索:多进程/线程的SAPI生命周期
多进程的SAPI生命周期 通常PHP是编译为apache的一个模块来处理PHP请求。Apache一般会采用多进程模式, Apache启动后会fork出多个子进程,每个进程的内存空间独立,每个子进程都会经过开始和结束环节, 不过每个进程的开始阶段只在进程fork出来以来后进行,在整个进程的生命周期内可能会处理多个请求。 只有在Apache关闭或者进程被结束之后才会进行关闭阶段,在这两个阶段之间会随
·
2015-11-10 21:40
生命周期
3.
PHP内核
探索:一次请求生命周期
PHP内核
用来处理请求、文件流、错误处理等相关操作; Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它; 扩展层是一组函数、类库
·
2015-11-10 21:40
生命周期
2.
PHP内核
探索:一次请求的开始与结束
PHP开始执行以后会经过两个主要的阶段: 处理请求之前的开始阶段 请求之后的结束阶段 开始阶段有两个过程: 第一个过程是模块初始化阶段(MINIT), 在整个SAPI生命周期内(例如Apache启动以后的整个生命周期内或者命令行程序整个执行过程中), 该过程只进行一次。 第二个过程是模块激活阶段(RINIT),该过程发生在请求阶段, 例如通过url请求某个页面,则在每次请求之
·
2015-11-10 21:39
PHP
1.
PHP内核
探索:从SAPI接口开始
SAPI:Server Application Programming Interface 服务器端应用编程端口。研究过PHP架构的同学应该知道这个东东的重要性,它提供了一个接口,使得PHP可以和其他应用进行交互数据。 本文不会详细介绍每个PHP的SAPI,只是针对最简单的CGI SAPI,来说明SAPI的机制。 我们先来看看PHP的架构图: SAPI指的是PHP具体应用的编程接口, 就
·
2015-11-10 21:38
PHP
深入理解
PHP内核
(一)
从实践出发,继弱类型变量原理探究后,本文继续带领大家深入理解
php内核
。最近,和一个网友交流的时候,给我提了一个非常奇怪的问题。那就是,在一个运算中,加了一个引用之后,发现性能慢了一万倍。
暮夏
·
2015-11-10 13:17
收藏网站
PHP
PHP内核
探索:PHP中的哈希表 http://www.nowamagic.net/librarys/veda/detail/1344 php hashtable
·
2015-11-09 12:12
网站
PHP内核
介绍及扩展开发指南—Extensions 的编写
Extensions 的编写 理解了这些运行机制以后,本章着手介绍Extensions 的编写,但凡写程序的人都知道hello world,那好,就从hello world开始。 1.1Hello World 这是摘自《PHP手册》的示例程序: 双击代码全选 1 2 3 4 5 6 7 8 9 10 11 12 13 14
·
2015-11-02 15:46
PHP
PHP内核
介绍及扩展开发指南—Extensions 的编写(下)
第一个参数是HashTable,在1.2.3节提到Zend使用HashTable来存储PHP函数,function_table用于指 定从哪个HashTable中获取函数。通常应该用CG(function_table),展开就是 compiler_globals.function_table,compiler_globals是一个用来存储编译器数据的全局数据结构(与其对应 的还有个EG宏,即exe
·
2015-11-02 15:46
PHP
“C语言” 读书札记(一)之[读书计划]
1、
php内核
是用C开发的。 1》如果你想知道某个函数是怎么实
·
2015-11-02 12:27
读书
深入
php内核
一(概述)
“扩展 PHP”说起来容易做起来难。PHP 现在已经发展成了一个具有数兆字节源代码的非常成熟的系统。要想深入这样的一个系统,有很多东西需要学习和考虑。在写这一章节的时候,我们最终决定采用“边学边做”的方式。这也许并不是最科学和专业的方式,但却应该是最有趣和最有效的一种方式。在下面的小节里,你首先会非常快速的学习到如何写一个虽然很基础但却能立即运行的扩展,然后将会学习到有关 Zend API 的高
·
2015-11-01 15:10
PHP
PHP底层运行机制
,它是随着Apache的启动而运行的;PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口); PHP总共有三个模块:内核、Zend引擎、以及扩展层;
PHP
·
2015-10-31 13:54
PHP
一个PHP书单 -摘自网络
中的面向对象和设计模式 《高性能PHP应用开发》 –了解一些基本简单的PHP优化 《PHP核心技术与最佳实践》 –了解很多PHP高级技术和延伸技术 《Extending and Embedding PHP》–
PHP
·
2015-10-31 12:24
PHP
PHP stdClass类 使用
这是zend_builtin_module的模块初始化函数,在
PHP内核
进行模块初始化操作时会自动加载这个函数, 这样,stdClass类的注册操作也就会被执行
·
2015-10-31 10:52
Class
深入
php内核
二(可扩展性)
正如上图(图3-1 PHP 内部结构图)所示,PHP 主要以三种方式来进行扩展:外部模块,内建模块各 Zend 引擎。下面我们将分别讨论这些方式: 外部模块 外部模块可以在脚本运行时使用 dl() 函数载入。这个函数从磁盘载入一个共享对象并将它的功能与调用该函数的脚本进行绑定并使之生效。脚本终止后,这个外部模块将在内存中被丢弃。这种方式有利有弊,如下表所示: 优点
·
2015-10-31 09:27
PHP
PHP底层工作原理
Apache的启动而运行的; PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口); PHP总共有三个模块:内核、Zend引擎、以及扩展层;
PHP
·
2015-10-31 08:58
工作原理
深入
php内核
八(代码模块讨论)
OK,现在你已经有了一个安全的构建环境,也可以把模块编译进 PHP 了。那么,现在就让我们开始详细讨论一下这里面究竟是如何工作的吧~ 模块结构 所有的 PHP 模块通常都包含以下几个部分: 包含头文件(引入所需要的宏、API定义等); 声明导出函数(用于 Zend 函数块的声明); 声明 Zend 函数块; 声明 Zend 模块; 实现 ge
·
2015-10-30 14:01
PHP
深入
php内核
五(开始创建扩展)
我们先来创建一个非常简单的扩展,这个扩展除了一个将其整形参数作为返回值的函数外几乎什么都没有。下面(“例3-2 一个简单的扩展”)就是这个样例的代码: 例3.2 一个简单的扩展 /* include standard header */#include "php.h" /* declaration of functions to be exported */ZE
·
2015-10-30 14:00
PHP
深入
php内核
七(故障处理)
实际上,在对静态或动态模块进行编译时没有太多故障处理工作要做。唯一可能的问题就是编译器会警告说找不到某些定义或者类似的事情。如果出现这种情况,你应该确认一下所有的头文件都是可用的并且它们的路径都已经在编译命令中被指定。为了确保每个文件都能被正确地定位,你可以先提取一个干净的 PHP 源码树,然后在 Ext 目录使用自动构建工具来创建这些文件。用这种方法就可以确保一个安全的编译环境。假如这样也不行
·
2015-10-30 14:00
PHP
深入
php内核
四(自动构建系统)
PHP 提供了一套非常灵活的自动构建系统(automatic build system),它把所有的模块均放在 Ext 子目录下。每个模块除自身的源代码外,还都有一个用来配置该扩展的config.m4 文件(详情请参见http://www.gnu.org/software/m4/manual/m4.html )。 包括 .cvsignore 在内的所有文件都是由位于 Ext 目录下的 ext
·
2015-10-30 14:00
PHP
深入
php内核
六(使用扩展)
根据你所选择的不同的构建过程,你要么把扩展编译进一个新的PHP 的二进制文件,然后再连接到 Web 服务器(或以CGI 模式运行),要么将其编译成一个 .so (共享库)文件。如果你将上面的样例文件 first_module.c 编译成了一个共享库,那么编译后的文件应该是 first_module.so。要想使用它,你就必须把他复制到一个 PHP 能访问到的地方。如果仅仅是为了测试的话,简单起见
·
2015-10-30 14:00
PHP
深入
php内核
三(源码布局)
在我们开始讨论具体编码这个话题前,你应该让自己熟悉一下 PHP 的源码树以便可以迅速地对各个源文件进行定位。这也是编写和调试 PHP 扩展所必须具备的一种能力。 下表列出了一些主要目录的内容: 目录 内容 php-src 包含了PHP主源文件和主头文件;在这里你可以找到所有的 PHP API 定义、宏等内容。(重要). 其他的一些东西你也可以在这里找到
·
2015-10-30 14:59
PHP
PHP内核
探索之变量(2)-理解引用
本文主要内容: 引论 符号表与zval 引用原理 回到最初的问题 一、引论 很久之前写了一篇关于引用的文章,当时写的寥寥草草,很多原理都没有说清楚。最近在翻阅Derick Rethans(home: http://derickrethans.nl/ Github: https://github.com/derickr)大牛之前做的报告时,发现了一篇讲解PHP引用机制的
·
2015-10-28 09:47
PHP
PHP内核
的学习--PHP生命周期
一切的开始: SAPI接口 SAPI(Server Application Programming Interface)指的是PHP具体应用的编程接口, 就像PC一样,无论安装哪些操作系统,只要满足了PC的接口规范都可以在PC上正常运行, PHP脚本要执行有很多种方式,通过Web服务器,或者直接在命令行下,也可以嵌入在其他程序中。 通常,我们使用Apache或者Nginx这类Web服务器来测试
·
2015-10-27 12:55
生命周期
PHP内核
探索之变量(6)- 后续内核探索系列大纲备忘
为了不至于过于发散,先搞个未成形的大纲,如下:
PHP内核
探索之变量 不平凡的字符串
PHP内核
探索之变量 变量的生命周期、类型转换
PHP内核
探索之变量
·
2015-10-20 08:26
PHP
深入理解
php内核
阅读1
do{}while(0)使用的解释 do{}while(0)写法的目的主要是为了程序基础函数的健壮性和通用性,和一些代码的灵活使用。 do{}while(0)写法会让内部的代码执行一次后退出,如果不使用这种写法,会对那些如if语句后面不紧跟{}的程序员造成编译错误,而对那些使用{}编程习惯的则无影响。举例:#defineSAFE_DELETE(p)do{deletep;p=NULL}while(
shsjshentao
·
2015-09-16 15:14
do{
}while(0
变量改变时
PHP内核
做了些什么?
引言内容来自于《ExtendingandEmbeddingPHP》-Chaper3-MemoryManagement,加上自己的理解,对php中变量的引用计数、写时复制,写时改变,写时复制和改变做个”翻译“。zval看下面的内容之前先对zval这个结构体做个了解typedefstruct_zval_struct{ zvalue_valuevalue; zend_uintrefcount; zend
奔跑的Man
·
2015-09-16 13:00
PHP是怎么运行的
从宏观上来看,
PHP内核
的实现就是接收输入的数据,内部做相应的处理
Aintnot
·
2015-09-07 11:00
PHP连接Nginx服务器并解析Nginx日志的方法
php与nginx整合PHP-FPM也是一个第三方的FastCGI进程管理器,它是作为PHP的一个补丁来开发的,在安装的时候也需要和PHP源码一起编译,也就是说PHP-FPM被编译到
PHP内核
中,因此在处理性能方面更加优秀
低调小一
·
2015-08-16 12:46
PHPer 的成长书录
理解PHP中的面向对象和设计模式《高性能PHP应用开发》–了解一些基本简单的PHP优化《PHP核心技术与最佳实践》–了解很多PHP高级技术和延伸技术《ExtendingandEmbeddingPHP》–
PHP
u012906135
·
2015-08-12 16:00
《
PHP内核
探索系列文章》系列技术文章整理收藏
《
PHP内核
探索系列文章》系列技术文章整理收藏
PHP内核
探索系列文章收藏夹收藏有关
PHP内核
方面的知识的文章,对PHP高级进阶的朋友提供
PHP内核
方面的知识点探讨 1
PHP内核
探索:从SAPI接口开始http
开元中国2015
·
2015-06-27 16:00
PHP
内核探索
PHP内核
探索:zend_execute的具体执行过程
PHP内核
探索:zend_execute的具体执行过程解释器引擎最终执行op的函数是zend_execute,实际上zend_execute是一个函数指针,在引擎初始化的时候zend_execute默认指向了
开元中国2015
·
2015-06-19 07:00
《
PHP内核
探索系列文章》系列技术文章整理收藏
《
PHP内核
探索系列文章》系列技术文章整理收藏
PHP内核
探索系列文章收藏夹收藏有关
PHP内核
方面的知识的文章,对PHP高级进阶的朋友提供
PHP内核
方面的知识点探讨 1
PHP内核
探索:从SAPI接口开始2
PHP
开元中国2015
·
2015-06-01 09:00
PHP
php内核
《
PHP内核
探索系列文章》系列技术文章整理收藏
《
PHP内核
探索系列文章》系列分享专栏《
PHP内核
探索系列文章》已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201817.html简介
PHP内核
探索系列文章收藏夹收藏有关
hello_katty
·
2015-06-01 09:37
PHP开发
IT技术学习整理收藏
Php session内部执行流程的再…
首先php中的session其实就是作为一个扩展载入到
php内核
中的。我们可以将它理解成一个扩展就可以了。
zhongyi_yang
·
2015-05-28 13:00
初识
PHP内核
迫使我去了解
PHP内核
是我在调试JAVA程序的时候,我想很多使用过PHP的同志去开发JAVA程序的时候肯定会遇到这样一个问题,为什么JAVA没有提供类似var_dump()或者print_r()这样的函数供我们调试
lsx991947534
·
2015-05-07 23:00
源码
PHP
git
C语言
内核
PHP内核
中的神器之HashTable
PHP内核
中的神器之HashTablehttp://blog.csdn.net/a600423444/article/details/8850617分类: C/C++ PHP2013-04-2517:
kendyhj9999
·
2015-04-25 21:00
PHP
c/c++
PHP扩展开发-内核执行流程与扩展结构
在开发扩展之前最好了解下
PHP内核
的执行流程PHP大概包括三个方面 SAPIZendVM内部扩展ZendVM是PHP的虚拟机与JVM类似都是各自语言的编译/执行的核心。
扒拉米2015
·
2015-03-25 10:27
java
虚拟机
开发
程序
风格
PHP扩展开发-内核执行流程与扩展结构
在开发扩展之前最好了解下
PHP内核
的执行流程PHP大概包括三个方面 SAPIZendVM内部扩展ZendVM是PHP的虚拟机与JVM类似都是各自语言的编译/执行的核心。
扒拉米2015
·
2015-03-25 10:27
java
虚拟机
开发
程序
风格
require 和include 区别
如果使用了这条语句,也就是告诉
PHP内核
,我这个程序需要这个文件,有赖于这个文件。或者通俗点儿讲就是:我要她!
lixinnan
·
2015-01-23 16:00
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他