简单说明php程序运行过程性,php预处理web服务器和数据库服务器的功

简单说明php程序运行过程性,php预处理web服务器和数据库服务器的功,第1张

我们大家都知道PHP的强大之处,最近看到了关于PHP

WEB服务器的相关知识,下面我们就这个问题和大家一起讨论一下。WAP(无线通讯协议)是在数字移动电话、个人手持设备(PDA等)及计算机之间进行通讯的开放性全球标准。由于静态的WAP页面在很多方面不能满足用户个性化的服务请求,因此通过WAP服务器端语言产生动态的WML页面,具有很广泛的应用价值和很高的商业价值。

浅析使用PHP逻辑运算符 关于Windows PHP配置应用程序服务器步骤 经验之谈:PHP安装设置技巧总结 演示PHP substr函数使用 关于Windows下安装PHP5配置详细介绍

WAP

应用结构非常类似于Internet,一个典型的WAP应用请求是这样的:首先,具有WAP用户代理功能的移动终端(WAP手机等)通过内部运行的微浏览器(Micro

Browser)对某一网站以无线方式发送WAP服务请求。该请求先由WAP网关截获,对信息内容进行编码压缩,以减少网络数据流量,同时根据需要将WAP协议转换成HTTP协议,然后将处理后的请求转送到相应WAP服务器。在WAP服务器端,根据页面扩展名等性质,被请求的页面直接或由服务器端脚本解释后输出,再经网关传回用户。

从上述WAP应用流程可以看到,生成动态WAP页面与动态产生Web网页的过程非常类似。但是由于WAP应用使用的WML语言来源于语法严格的XML,因此要求输出的格式必须按WAP网页的规范输出。同时,由于WAP协议的应用范围、移动客户端的软硬件水平等特殊性,对每次输出的页面的大小、图像的格式及容量都有一定限制。下面我们以PHP脚本语言为例,看看如何动态输出WAP页面。

一、设置PHP WEB服务器

首先你的 Web服务器要安装好PHP,即能处理PHP脚本程序。其次,为使PHP WEB服务器能同时识别和处理PHP、WML、WBMP等文件,Web

服务器的MIME表需添加以下的几种文件类型。

text/vndwapwml wml    image/vndwapwbmp wbmp    application/vndwapwmlc wmlc    text/vndwapwmlswmls   application/vndwapwmlsc wmlsc   

二、用PHP输出简单动态WAP页面 

下面有一个最简单的PHP生成WAP页面的例子。注意由于需要PHP解释器来解释该程序,并输出WAP页面,因此所有类似程序应以php为扩展名。

<php header(″Content-type: text/vndwapwml″);  echo (″<wml> <card> <p>″);  echo date( ″l dS of F Y h:i:s A″ );   echo (″</p></card></wml>″);  >

该例子在WAP手机模拟器中可以浏览,输出当前日期时间,而在普通的浏览器中无法识别,甚至会被认为是错误下载。这是因为在程序开头就声明了该输出文档为WML类型,该类型只有WAP设备能够识别并解释。值得注意的是,我们常见的HTML语言对规范性要求不严,大多数浏览器能“容忍”其中相当多的编写错误,而WML规范相当严格,一点失误都可能导致无法输出所需页面。

一旦我们知道了用PHP脚本输出WAP页面的标准过程,我们就能够使用PHP强大的功能配合以WML语言的交互处理以及WML s

cript的简单脚本,开发出适合我们需要的应用系统了。

三、用PHP动态生成图像 

WAP应用使用一种特殊黑白的图像格式WBMP。我们可以用一些工具来将已有图像转换成WBMP格式,然后在WML文档中使用。但是在WAP站点上如果能动态地生成所需图像如K线图等,将会有广阔的应用前景。幸运的是,PHP的GD库(版本18以上)已经提供了相应函数。

<PHP Header(″Content-type: image/vndwapwbmp″);  Sim = ImageCreate(50, 50);  Swhite = ImageColorAllocate(Sim,255,255,255);  Sblack = ImageColorAllocate(Sim,0,0,0);  ImageRectangle(Sim, 5, 5, 20, 20, Sblack);  ImageWBMP(Sim); ImageDestroy(Sim);  >

该文件将在WAP模拟器中显示一个黑色矩形框。注意要使用GD的图像函数库,必须在PHP WEB服务器配置中加载PHP_GDDLL库文件。

四、在PHP中处理汉字

WAP作为一种全球应用,选择了UNICODE

20作为其标准字符集编码,以便能同时处理包括英文、中文、日文、法文等多种文字。而我们平常处理汉字使用的是GB2312编码,不同的内码标准势必不能通用,因此如果不在两种编码之间通过码表进行转换,就会出现汉字乱码现象。现在已经有较成熟的GB-2312与UNICODE编码转换的程序和函数,并在ASP、PHP、JSP等系统中使用,我们可以在一些技术站点上找到它们。

目前的大多数WAP手机(Nokia7110、爱立信

R320S等等)都是使用UTF-8编码的,也就是采用UNICODE来编码。这样,如果我们直接在WML使用中文字符(GB2312编码),将会产生乱码,手机用户无法识别,所以我们在输出中文之前,要使用程序或函数对中文进行UNICODE的编码。而在少数支持GB2312编码的手机或WAP终端设备中,我们可以在程序中定义好文档的内码类型后即可直接正确显示汉字,例如:

<php   header(″Content-type: text/vndwapwml; charset=gb2312″);  echo (″<wml><card><p>″);  echo (″中文测试″);  echo (″</p></card></wml>″);  >

php服务器配置:

1将下载的php压缩解压。得到如下的目录

2添加IIS,windows7默认情况下是不安装IIS的。

打开控制面板->程序和功能->打开或关闭windows功能。安装好IIS后如下:

3,添加处理程序映射

请求路径设为php,模块选择fastCgiModule。在windows+IIS模式下。fastCGI模式比传统的isapi模式效率要高很多。

可执行文件选择刚才解压的目录。文件类型选择exe,选择对应的文件即可。下面的名称可任意。

然后确定。重启IIS。服务器就好了。另外所谓的MYSQL。直接下载安装版的就行了。

PHP  $_SERVER 变量

$_SERVER 是一个包含诸如头信息(header)、路径(path)和脚本位置(script locations)的数组。它是 PHP 中一个超级全局变量,我们可以在 PHP 程序的任何地方直接访问它。

$_SERVER 包含着众多的信息,你可以尝试直接打印它:

print_r($_SERVER);

$_SERVER 数组元素

更多情况下,我们只需要 $_SERVER 数组中的某些元素(数组单元)。$_SERVER 数组包含的元素如下:

页面程序相关

$_SERVER[‘PHP_SELF’]:相对于网站根目录的路径及 PHP 程序名称,与 document root 相关。

$_SERVER[‘HTTP_REFERER’]:链接到当前页面的前一页面的 URL 地址。

$_SERVER[‘SCRIPT_NAME’]:相对于网站根目录的路径及 PHP 程序文件名称 。

$_SERVER[‘REQUEST_URI’]:访问此页面所需的 URI 。

$_SERVER[‘SCRIPT_FILENAME’]:当前运行 PHP 程序的绝对路径及文件名。

$_SERVER[‘PATH_TRANSLATED’]:当前 PHP 程序所在文件系统(不是文档根目录)的基本路径。

$_SERVER[‘QUERY_STRING’]:查询(query)的字符串(URL 中第一个问号 之后的内容但不包括 # 后面的内容)。

$_SERVER[‘argv’]:传递给当前 PHP 程序的参数。

$_SERVER[‘argc’]:命令行模式下,包含传递给程序的命令行参数的个数。

$_SERVER[‘REQUEST_TIME’]:请求开始时的时间戳,从 PHP 510 起有效。

$_SERVER[‘REQUEST_METHOD’]:访问页面时的请求方法,例如:“GET”、“HEAD”,“POST”或“PUT”。

$_SERVER[‘HTTP_ACCEPT’]:当前请求的 Accept: 头信息的内容。

$_SERVER[‘HTTP_ACCEPT_CHARSET’]:当前请求的 Accept-Charset: 头信息的内容。例如:“iso-8859-1,,utf-8”。

$_SERVER[‘HTTP_ACCEPT_ENCODING’]:当前请求的 Accept-Encoding: 头信息的内容。例如:“gzip”。

$_SERVER[‘HTTP_ACCEPT_LANGUAGE’]:当前请求的 Accept-Language: 头信息的内容。例如:“zh-cn”。

$_SERVER[‘HTTP_CONNECTION’]:当前请求的 Connection: 头信息的内容。例如:“Keep-Alive”。

$_SERVER[‘HTTP_HOST’]:当前请求的 Host: 头信息的内容。

$_SERVER[‘HTTPS’]:如果 PHP 程序是通过 HTTPS 协议被访问,则被设为一个非空的值。

$_SERVER[‘PHP_AUTH_DIGEST’]:当作为 Apache 模块运行时,进行 HTTP Digest 认证的过程中,此变量被设置成客户端发送的“Authorization”HTTP 头内容(以便作进一步的认证操作)。

$_SERVER[‘PHP_AUTH_USER’]:当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。

$_SERVER[‘PHP_AUTH_PW’]:当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。

$_SERVER[‘AUTH_TYPE’]:当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。

服务器端相关

$_SERVER[‘DOCUMENT_ROOT’]:当前运行 PHP 程序所在的文档根目录,在服务器配置文件中定义。

$_SERVER[‘GATEWAY_INTERFACE’]:服务器使用的 CGI 规范的版本,例如:“CGI/11”。

$_SERVER[‘SERVER_ADDR’]:当前运行 PHP 程序所在的服务器的 IP 地址。

$_SERVER[‘SERVER_NAME’]:当前运行 PHP 程序所在的服务器的名称。

$_SERVER[‘SERVER_ADMIN’]:Apache 服务器配置文件中的 SERVER_ADMIN 参数。

$_SERVER[‘SERVER_PORT’]:服务器所使用的端口。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。

$_SERVER[‘SERVER_SIGNATURE’]:包含服务器版本和虚拟主机名的字符串。

$_SERVER[‘SERVER_SOFTWARE’]:服务器标识的字串,在响应请求时的头信息中给出。

$_SERVER[‘SERVER_PROTOCOL’]:请求页面时通信协议的名称和版本,例如:“HTTP/10”。

其他杂项

$_SERVER[‘HTTP_USER_AGENT’]:当前请求的 User-Agent: 头信息的内容,该字符串表明了访问该页面的用户代理的信息。

$_SERVER[‘REMOTE_ADDR’]:正在浏览当前页面用户的 IP 地址。

$_SERVER[‘REMOTE_HOST’]:正在浏览当前页面用户的主机名。

$_SERVER[‘REMOTE_PORT’]:用户连接到服务器时所使用的端口。

注意,如果以命令行方式运行 PHP,上面列出的元素几乎没有有效的(或是没有任何实际意义的)。

PHP $_ENV 变量

$_ENV 是一个包含服务器端环境变量的数组。它是 PHP 中一个超级全局变量,我们可以在 PHP 程序的任何地方直接访问它。

$_ENV 只是被动的接受服务器端的环境变量并把它们转换为数组元素,你可以尝试直接打印它:

print_r($_ENV);

限于篇幅,在此不再列出打印的结果,且不同的服务器上,打印出的结果可能是完全不同的。

$_ENV 数组元素

$_ENV 数组中的元素(数组单元)随服务器环境不同而有较大差异,所以无法像 $_SERVER 那样列出完整的列表。以下是 $_ENV 数组包含的比较通用的元素:

$_SERVER[‘PATH’]:环境变量 PATH 路径。

$_SERVER[‘CLASSPATH’]:系统 CLASSPATH 路径。

$_SERVER[‘LIB’]:系统 LIB 库路径。

$_SERVER[‘INCLUDE’]:系统 Include 路径,注意与 PHP 的包含路径是不一样的。

$_SERVER[‘OS’]:操作系统类型。

$_SERVER[‘LANG’]:系统语言,如 en_US 或 zh_CN。

$_SERVER[‘PWD’]:当前工作目录。

$_SERVER[‘TEMP’]:系统 TEMP 路径。

$_SERVER[‘AP_PARENT_PID’]:当前进程 ID 号。

$_SERVER[‘NUMBER_OF_PROCESSORS’]:系统 CPU 数目。

$_ENV 为空的原因及解决办法

如果打印输出 $_ENV 为空,可以检查一下 phpini 的配置:

variables_order = "EGPCS"

上述配置表示 PHP 接受的外部变量来源及顺序,EGPCS 是 Environment、Get、Post、Cookies 和 Server 的缩写。如果 variables_order 的配置中缺少 E ,则 PHP 无法接受环境变量,那么 $_ENV 也就为空了。

php服务器搭建有两种方式

一种是linux+apache+mysql+php方式。

另外一种是windows+IIS+mysql+php方式。

还有一种方式,就是在windows模式下,用apache作为服务器。

这种情况。第一种配置较为复杂。而且一般作为服务器居多,个人电脑测试用,一般以windows为主。

所以下面的配置方式以windows7为例:

首先,你需要去下载php的原始文件,绿色版的,安装版的均可。

1将下载的php压缩解压。得到如下的目录

2添加IIS,windows7默认情况下是不安装IIS的。

打开控制面板->程序和功能->打开或关闭windows功能。安装好IIS后如下:

3,添加处理程序映射

请求路径设为php,模块选择fastCgiModule。在windows+IIS模式下。fastCGI模式比传统的isapi模式效率要高很多。

可执行文件选择刚才解压的目录。文件类型选择exe,选择对应的文件即可。下面的名称可任意。

然后确定。重启IIS。服务器就好了。另外所谓的MYSQL。直接下载安装版的就行了。

如果只是配置php那么使用apache+php就可以了,不管是在windows还是在linux基本没有太大的区别的

如果还用运行别的东西 asp,aspnet等,就最好用windows了,因为linux下用iASP对asp支持并不好,其它的方法我还不知道。

php的运行速度比aspnet要慢,但是php在不停的向前发展,相信php的前途是光明的。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 简单说明php程序运行过程性,php预处理web服务器和数据库服务器的功

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情