1. php网页运行原理
转载以下,希望对你有帮助:
你有没有想过PHP是怎么在浏览器里输出“你好世界”的?我也是看了PHP内核和扩展后才知道的。也许有些朋友也想知道其中原理,那就让我们开始吧。
在上一篇网志里我简单介绍了“在我浏览这个页面之前都发生了些什么?”这个问题。如果你错过了就点这里看看吧。现在我要讨论的是“PHP是怎样在浏览器里输出内容”这个问题。
简介
先看看下面这个过程:
1. 我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的;
2. PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口);
3. PHP总共有三个模块:内核、Zend引擎、以及扩展层;
4. PHP内核用来处理请求、文件流、错误处理等相关操作;
5. Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它;
6. 扩展层是一组函数、类库和流,PHP使用它们来执行一些特定的操作。比如,我们需要mysql扩展来连接MySQL数据库;
7. 当ZE执行程序时可能会需要连接若干扩展,这时ZE将控制权交给扩展,等处理完特定任务后再返还;
8. 最后,ZE将程序运行结果返回给PHP内核,它再将结果传送给SAPI层,最终输出到浏览器上。
深入探讨
等等,没有这么简单。以上过程只是个简略版,让我们再深入挖掘一下,看看幕后还发生了些什么。
1. Apache启动后,PHP解释程序也随之启动;
2. PHP的启动过程有两步;
3. 第一步是初始化一些环境变量,这将在整个SAPI生命周期中发生作用;
4. 第二步是生成只针对当前请求的一些变量设置。
PHP启动第一步
不清楚什么第一第二步是什么?别担心,我们接下来详细讨论一下。让我们先看看第一步,也是最主要的一步。要记住的是,第一步的操作在任何请求到达之前就发生了。
1. 启动Apache后,PHP解释程序也随之启动;
2. PHP调用各个扩展的MINIT方法,从而使这些扩展切换到可用状态。看看php.ini文件里打开了哪些扩展吧;
3. MINIT的意思是“模块初始化”。各个模块都定义了一组函数、类库等用以处理其他请求。
一个典型的MINIT方法如下:
PHP_MINIT_FUNCTION(extension_name){
/* Initialize functions, classes etc */
}
PHP启动第二步
1. 当一个页面请求发生时,SAPI层将控制权交给PHP层。于是PHP设置了用于回复本次请求所需的环境变量。同时,它还建立一个变量表,用来存放执行过程中产生的变量名和值。
2. PHP调用各个模块的RINIT方法,即“请求初始化”。一个经典的例子是Session模块的RINIT,如果在php.ini中启用了Session 模块,那在调用该模块的RINIT时就会初始化$_SESSION变量,并将相关内容读入;
3. RINIT方法可以看作是一个准备过程,在程序执行之间就会自动启动。
一个典型的RINIT方法如下:
PHP_RINIT_FUNCTION(extension_name) {
/* Initialize session variables, pre-populate variables, redefine global variables etc */
}
PHP关闭第一步
如同PHP启动一样,PHP的关闭也分两步:
1. 一旦页面执行完毕(无论是执行到了文件末尾还是用exit或die函数中止),PHP就会启动清理程序。它会按顺序调用各个模块的RSHUTDOWN方法。
2. RSHUTDOWN用以清除程序运行时产生的符号表,也就是对每个变量调用unset函数。
一个典型的RSHUTDOWN方法如下:
PHP_RSHUTDOWN_FUNCTION(extension_name) {
/* Do memory management, unset all variables used in the last PHP call etc */
}
PHP关闭第二步
最后,所有的请求都已处理完毕,SAPI也准备关闭了,PHP开始执行第二步:
1. PHP调用每个扩展的MSHUTDOWN方法,这是各个模块最后一次释放内存的机会。
一个典型的RSHUTDOWN方法如下:
PHP_MSHUTDOWN_FUNCTION(extension_name) {
/* Free handlers and persistent memory etc */
}
这样,整个PHP生命周期就结束了。要注意的是,只有在服务器没有请求的情况下才会执行“启动第一步”和“关闭第二步”。
2. 比较经典的php教程
推荐《PHP和MySQL.Web开发》(澳)Luke Welling 和Laura Thomason合着,被誉为Php开发圣经。
3. php的着名开源项目有哪些
国内的dedecms phpcms phpwind等等就 康盛的discuz经典一点
国外的 wordpress drupal joomla 都比较经典 都是世界上很出名的。
4. 求精典的PHP企业网站源码
http://down.chinaz.com/s/16771.asp
情感家园程序 v3.0 For 企业版
基本实现了小型企业网站所要求的各种功能:如企业简介,产品展示,人才招聘,特别主题,企业新闻等,前台采用 phpLib v7.4 做为模板引擎
默认账号:admin
密码:admin
5. 求经典php企业网站源码
帝国cms,phpcms,php168,米拓等都不错
6. php是什么
PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。
PHP语法学习了C语言,吸纳java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程,该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。PHP同时支持面向对象和面向过程的开发,使用上非常灵活。
语言特点
PHP是一个受众大并且拥有众多开发者的开源软件项目,Linux + Nginx + Mysql + PHP是它的经典安装部署方式,相关的软件全部都是开源免费的,所以使用PHP可以节约大量的正版授权费用。
不过PHP作为一个开源软件,它缺乏大型科技公司的支持背景,网络上对它的唱衰也是经久不衰,不过它的持续迭代和性能持续增强的现实却是鼓舞人心的,PHP社区用实际行动给予各种质疑强有力的回击。
7. PHP 网站制作 PHP+MYSQL
同学,你这是作业吧.
看你的问题,这是简单的操作mysql数据库,如果有些小基础,你可以看一下关于php操作mysql的知识点来做.
w3c教程网就有.
8. php 网站怎么做到,不刷新页面,实时自动跟新数据
不刷新页面更新数据,一般有两个方法实现,都离不开JAVASCRIPT。现在最流行的就是AJAX,是用JS脚本连接数据库更新数据,刷新页面部分区域内容,不刷新整个网页。另外一个是比较经典、但是兼容性更高的方法,设置一个隐藏的FRAME或者iFRAME帧,那个帧不断刷新PHP页面,页面内容为改变可见帧内容的JS。
9. 谁能推荐经典网站!(类别不限)
网站设计入门网站大观 z
网站设计工业近年百花齐放,入门网站Design Portal也特别多,以下介绍一些有名的。
http://www.k10k.net
kaliber1000,是最有名的portal,其号称"设计师的午餐盒",是很多人每天必去的地方。目前该网站正在重整,但其享负盛名,不能不介绍。
http://www.linkp.com
Linkp至今已出至第34期,每期会介绍十多个网站。其评选严谨,能入榜的比属上品。
http://www.8minus8.com
版面简洁,网站收藏量不算多。
http://www.experimental.ro/front/index.php
设计出色,新闻也很update。
http://www.australianinfront.com.au
一个极具影响力的澳洲网站,宗旨是发扬本地创作的精神。
http://www.shadowness.com
一个带有photoshop/3D Max/Flash等教程的入门网站。
http://www.designiskinky.net
以报道各知名网页的最新动态为主。知名度很高。
http://www.pixelsurgeon.com
pixelsurgeon除了有新闻外,也有设计师的采访,甚至有电影/书籍/漫画/音乐等的review。他们有几位华人设计师。我旧的头像里的中文字就是出自pixelsurgeon。
http://www.halfproject.com
100%菲律宾制造是他们的口号。这个网站的制作出奇的好,非常有特色。而内容方面也比同类网站充实。
http://www.kiiroi.nu
kiiroi是早期成名的,尽来较为沉寂。
http://www.surfstation.lu
也是早期成名的。splash page随机的载上一些名设计师给他们做的封面。
http://www.shift.jp.org
shift杂志的全球影响力决不亚于其他网站。它除了经常更新的splash shockwave page,其他设计实在不敢恭维。但它拥有庞大的database,收录了无数东瀛及世界各地的出色设计。而他们出道甚早,可以说是design portal的开山鼻祖。
http://www.34it.com
主办人为美国的Patrick Miko和比利时的Peter(www.nrg.be)。这个网站主力提供Flash的资讯/高级教程和高级源文件。讨论区是你见过最酷的vbb,里面的版主都是成名人物。而整个网站从设计者到会员大多是顶尖高手(除了我),所以水准极高。boos在那里混了很久,得益良多。
http://www.deformat.de
来自德国,连结了大小设计网站无数。deformat最大的优点是将各类型分门别类,介绍的很详细。
http://www.pixellamer.com
内容包括业界新闻,墙纸,连结等。值得一看。
http://www.infourm.com
inforum于数月前问世,规模较少但水准极高。inforum由forum制作,而fourm的成员包括:
www.Fourm.com
www.Natzke.com
www.Miniml.com
www.Soundofdesign.com
www.Gridplane.com
单看这幕后班底就知道infourm的厉害。miniml.com带起的pixel font潮流,估计还会流行几年。
http://www.h73.com
HSE7EN3的名气不亚于其竞争对手。去年此网站被Quorporation收购,重新整顿后很有大型网站的风格。无奈一直钟情的旧版h73,在新站里已找不到一点痕迹。今天发现h73这个URL重新运作,特来推荐。
http://www.threeoh.com
闻名一时的threeoh重整之后,这两天又重见天日。目前网站内容不多,不少连结仍未做好。但凭他的实力估计能在短期内回复昔日光彩,请大家拭目以待。
10. 哪有比较强的PHP网上商城系统呢
PHP网上商城系统推荐你YISHOP商城系统
1.代码规范程度
系统的底层框架采用纯C编写,运行速度是PHP框架的10倍以上。代码层面采用目前最先进的OOP(面向对象)设计思想和MVC(控制器,模型,视图分离)的模块化设计理念以及驱动式设计使系统代码更简炼,以最少的代码实现最多的功能;
2.系统扩展性
扩展性:采用目前最先进的模块化、驱动化设计让系统极容易扩展,无论是增加底层驱动,还是增加功能都很方便。比如你要增加另外一种数据库,你只要按照规定的方式进行扩展即可,不用对系统动大手术;
3.模板引擎
为提高系统性能,系统默认采用PHP原生的模板引擎。当然,也支持Smarty等主流的模板引擎
4.系统性能
系统从设计之初就秉承简单可依赖的信念设计,为了提高性能,架构师把把最基础,最常用,最核心的功能才用C语言实现,系统也进行多种压力测试,把每一个稍微影响系统性能的环节都做优化,自主研发的队列机制,让瞬间爆发的流量也能保证稳定不出错