`

详解PHP的执行原理和流程

阅读更多

关于PHP的执行过程和原理

 

(1)简单阐述过程

    我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的; 

① PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口); 

②PHP总共有三个模块:内核、Zend引擎、以及扩展层; 

③PHP内核用来处理请求、文件流、错误处理等相关操作; 

④Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它; 

⑤扩展层是一组函数、类库和流,PHP使用它们来执行一些特定的操作。比如,我们需要mysql扩展来连接MySQL数据库; 

⑥当ZE执行程序时可能会需要连接若干扩展,这时ZE将控制权交给扩展,等处理完特定任务后再返还; 

⑦最后,ZE将程序运行结果返回给PHP内核,它再将结果传送给SAPI层,最终输出到浏览器上 

 

(2)引言

   PHP作为世界上最好的编程语音,被广泛的运用到Web开发中。因为其语法和C类似,有着非常平缓的学习曲线,越来越多的人使用PHP进行Web产品的快速开发。

   PHP世界里也涌现了很多开发框架,比如Laravel、ThinkPHP等,但不论何总框架,他们在处理Web请求时的模式都是一样的,本文首先阐述PHP开发Web应用的基本架构,然后分别分析Laravel和ThinkPHP在处理Web请求时的处理流程。

 

(3)PHP开发Web应用的基本架构

   PHP开发Web应用时用户的请求需要指向具体的入口文件。WebServer(网络服务器)是一个内容分发者,他接受用户的请求后,如果是请求的是css、js等静态文件,WebServer会找到这个文件,然后发送给浏览器;如果请求的是/index.php,根据配置文件,WebServer知道这个不是静态文件,需要去找PHP解析器来处理,那么他会把这个请求简单处理后交给PHP解析器。

PHP处理Web请求流程分析 - 第1张  | Eureka

 

   WebServer会依据CGI协议,将请求的Url、数据、Http Header等信息发送给PHP解析器,接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以CGI规定的格式返回处理后的结果,退出进程。web server再把结果返回给浏览器。整个处理过程如上图所示。

   

 

 

【拓展】

  ①CGI协议(common gateway interfac通用网关接口),具体我在后面文章里做了总结

 

 

 

 

 

 

 

 

 

参考网址:

http://blog.csdn.net/qq_28602957/article/details/53363963

http://blog.csdn.net/lsy90/article/details/51323993

http://www.jb51.net/article/74907.htm

分享到:
评论

相关推荐

    杜江 php5与MySQL5 web开发技术详解 光盘代码

    通过阅读《杜江 PHP5与MySQL5 Web开发技术详解》,并结合光盘代码实践,读者不仅可以深入理解PHP5和MySQL5的原理,还能掌握实际项目开发中的各种技能,为成为一名合格的Web开发者奠定坚实基础。

    THINKPHP3.0执行流程图PDF

    ### THINKPHP3.0执行流程详解 #### 一、项目启动与初始化 THINKPHP3.0是一款基于PHP的轻量级开发框架,其执行流程是理解整个框架工作原理的关键。从项目入口文件(index.php)开始,THINKPHP3.0会依次经过多个阶段...

    PHP网络编程技术详解 完整版 pdf + 源码

    《PHP网络编程技术详解》是一本深入探讨PHP在网络编程中的应用的专业书籍,配合源码学习,可以帮助读者全面掌握PHP在网站开发中的各项技能。本文将根据书名和描述,结合PHP的相关知识点,展开详细的讨论。 PHP...

    PHP架构及原理知识点详解

    总结来说,PHP的架构和原理涉及多进程模型、弱类型特性、Zend引擎的编译执行流程、Extensions扩展、SAPI接口以及上层应用的编写。掌握这些知识不仅有助于日常开发,还能提升问题排查和系统优化的能力,使PHP程序员...

    支付DEMO演示微信付款流程PHP代码

    【PHP微信支付DEMO演示】是一个为初学者设计的教学资源,旨在详解微信支付接口的集成与使用流程。这个DEMO提供了完整的PHP代码实现,通过它,你可以了解到如何在你的项目中接入微信支付功能,以便用户可以方便快捷地...

    TIPI:深入理解PHP内核-PHP内核程序详解chm文档

    通过深入学习《TIPI:深入理解PHP内核》,开发者不仅能了解PHP的工作原理,还能掌握优化代码、调试问题和开发扩展的技巧,从而提升编写高效、可靠的PHP应用程序的能力。文档中的实例和详细解释有助于将理论知识转化...

    详解nginx+php执行请求的工作原理

    同时,Nginx的高性能和PHP-FPM对PHP执行环境的高效管理,使得这种组合在现代Web应用中非常流行。 在实际应用中,为了保证应用的高可用性和扩展性,还可能涉及到多台服务器的负载均衡、缓存策略、数据库的读写分离与...

    深入理解PHP之OpCode原理详解

    PHP执行流程分为四个主要步骤: 1. **词法分析(Scanning/Lexing)**:PHP代码首先被词法分析器(如Zend/zend_language_scanner.c和zend_language_scanner.l)处理,将代码分解成一个个语言片段,称为Tokens。PHP...

    PHP5与MYSQL5 WEB开发详解DATABASE1

    4. session和cookie:理解其工作原理,使用它们来管理用户会话,实现用户登录状态的保持。 五、安全性与性能优化 1. 输入验证:对用户提交的数据进行严格的过滤和验证,防止XSS攻击和SQL注入。 2. 参数绑定:使用...

    php-底层原理

    ### PHP底层原理详解 #### 一、概述 PHP是一种广泛应用于Web开发的动态语言,它不仅功能强大,而且易于学习和使用。深入了解PHP的底层机制对于优化PHP程序性能至关重要。本文将详细介绍PHP的设计理念、整体结构、...

    前台PHP+后台MYSQL数据库开发详解

    3. **流程控制结构**:包括条件语句(if...else、switch...case)和循环(for、while、do...while、foreach),用于控制程序的执行流程。 4. **函数库**:PHP有丰富的内置函数库,如字符串处理、数组操作、文件系统...

    详解ucenter原理及第三方应用程序整合思路、方法

    ### 详解uCenter原理及第三方应用程序整合思路、方法 #### 一、uCenter的功能与价值 uCenter作为一款强大的用户中心管理系统,不仅能够实现不同PHP应用程序之间的用户数据整合,还能跨语言支持ASP/ASP.NET/PHP/JSP...

    PHP反序列化漏洞详解.rar

    这个话题在CTF(Capture The Flag)网络安全竞赛中也常被用作挑战,因为理解和利用这种漏洞需要深入理解PHP语言和其内部工作原理。下面将详细阐述PHP反序列化漏洞的相关知识点。 **1. PHP序列化与反序列化** - **...

    php教程和php解释器5.2.14

    **PHP教程和PHP解释器5.2.14详解** PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,特别适用于Web开发,可嵌入到HTML中使用。PHP 5.2.14是该语言的一个较旧版本,但仍然在一些项目中被依赖。这个版本...

    PHP IIS 配置插件 PHPManager

    PHPManager是一款专为IIS设计的配置工具,它简化了在IIS上安装、管理和更新PHP的流程。该工具提供了直观的图形用户界面,使得管理员可以轻松地进行配置操作,而无需手动编辑XML配置文件或通过命令行执行操作。...

    php模板引擎设计原理

    PHP模板引擎设计原理详解 PHP模板引擎是一种将业务逻辑与视图展示分离的技术,它使得开发者可以专注于编写后端逻辑,而设计师则可以专心于页面布局和样式设计,两者之间的工作更加协同。模板引擎通常通过解析特定...

    thinkPHP开发流程图

    ### ThinkPHP 开发流程详解 #### 一、ThinkPHP启动过程概述 ThinkPHP是一个非常流行的PHP框架,以其高效、简洁的特性受到了众多...这不仅有助于开发者深入理解ThinkPHP的工作原理,还能为其日常开发提供指导和支持。

    php mvc 原理,代码告诉你

    **PHP MVC 模式原理详解** 在Web开发领域,Model-View-Controller(MVC)是一种广泛采用的设计模式,尤其在PHP开发中。MVC模式将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller),...

Global site tag (gtag.js) - Google Analytics