2个回答
展开全部
PHP就是个脚本语言,或者叫宏语言,必须得到解释器来解读。。。。php脚本后缀需要是php,当客户发送HTTP请求获得一个php文件时,服务器不会像其他文件一样,将文件传过去,而是去解读这个文件,他只解读php标签内中的内容,这需要一个解释器去解释这个脚本,解释器需要用真正的编程语言去做,比如C语言,服务器解读之后就会去执行php要求的行为,它不会进行编译,所以不存在生成机器码的环节,这是宏语言和真正的编程语言最大的区别,脚本只是另一个程序的操作对象,而不是程序代码本身。。。。
服务器解读了<?php ?>之后就会执行相应的动作,php里在<?php ?>之外的内容会原封不动,<?php ?>中的echo内容会输出到要发送的文本中(这些文本是要给客户的的,echo中内容一定要符合html语法),所有事情都做完了,就会把这些东西发送给客户,这是已经html文本了,浏览器能够读懂html,如果有rsc属性的标签,浏览器还需要再去服务器下载提到的资源,如果这个资源不是php那么按正常文件下载,没有PHP参与,如果还是php,这还要执行php代码,所有东西都准备好了,就能合成一个网页,如果缺少某资源,比如一张图片,如果没有缺省的图片代替,就会是个x 。。。。,这就是一个完整的php网页请求。。。
当然客户提交可能是post方法或get方法,会把url提交(这个是所有请求必须的),以及post中的变量附带在请求头后面提交,如果有cookie,客户还要把所有未过期的cookie提交了,这些都会存在在http请求中,发送给php文件时,需要生成超级全局变量,供php用,变量名就是那些$_GET之类的。。
服务器解读了<?php ?>之后就会执行相应的动作,php里在<?php ?>之外的内容会原封不动,<?php ?>中的echo内容会输出到要发送的文本中(这些文本是要给客户的的,echo中内容一定要符合html语法),所有事情都做完了,就会把这些东西发送给客户,这是已经html文本了,浏览器能够读懂html,如果有rsc属性的标签,浏览器还需要再去服务器下载提到的资源,如果这个资源不是php那么按正常文件下载,没有PHP参与,如果还是php,这还要执行php代码,所有东西都准备好了,就能合成一个网页,如果缺少某资源,比如一张图片,如果没有缺省的图片代替,就会是个x 。。。。,这就是一个完整的php网页请求。。。
当然客户提交可能是post方法或get方法,会把url提交(这个是所有请求必须的),以及post中的变量附带在请求头后面提交,如果有cookie,客户还要把所有未过期的cookie提交了,这些都会存在在http请求中,发送给php文件时,需要生成超级全局变量,供php用,变量名就是那些$_GET之类的。。
追问
那么,php不是也要经过词法分析,语法分析吗?举个例子:
,整个流程是怎么进行的,从读这段程序到输出结果。谢谢
2013-04-25
展开全部
词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。具体内容参看《编译原理》这部分工作由PHP完成(php程序执行器)
浏览器、apache、PHP、php程序、mysql 五者关系
浏览器发请求
apache接收、解析请求,告诉PHP待执行的php文件路径 以及触发PHP
PHP 执行指定的php文件
php程序 可以看作mysql 的客户端 负责连接mysql、编写sql语句
mysql 数据库服务器 负责接受php程序传过来的sql语句 执行并发回结果
php程序执行完后返回结果给PHP
PHP 返回结果给apache
apache返回结果(html)给浏览器
浏览器解析执行html
浏览器、apache、PHP、php程序、mysql 五者关系
浏览器发请求
apache接收、解析请求,告诉PHP待执行的php文件路径 以及触发PHP
PHP 执行指定的php文件
php程序 可以看作mysql 的客户端 负责连接mysql、编写sql语句
mysql 数据库服务器 负责接受php程序传过来的sql语句 执行并发回结果
php程序执行完后返回结果给PHP
PHP 返回结果给apache
apache返回结果(html)给浏览器
浏览器解析执行html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询