文章摘要:php可以直接运行吗
运行模式:1.CGI协议模式,服务器通过特定协议与程序通信;2.“fast-cgi”协议模式,开启后可一直处理 […]
运行模式:1.CGI协议模式,服务器通过特定协议与程序通信;2.“fast-cgi”协议模式,开启后可一直处理请求;3.模块模式,接收请求调用“mod_php”模块处理;4.“php-cli”模式,输入“phpxx.php”执行代码。
php运行模式有哪几种
1. CGI协议模式。cgi模式通用网关接口(Common Gateway Interface),它允许web服务器通过特定的协议与应用程序通信。
通俗的讲CGI就像是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器执行程序,再把服务器执行程序返回给HTML页。CGI的跨平台性能极佳,几乎可以在任何操作系统上实现。
调用原理大概为:用户请求->Web服务器接收请求->fork子进程调用程序/执行程序->程序返回内容/程序调用结束->web服务器接收内容->返回给用户,由于每次用户请求,都得fork创建进程调用一次程序,然后销毁进程,所以性能较低。
2.fast-cgi协议模式。fast-cgi是cgi模式的升级版,它像是一个常驻型的cgi,只要开启后,不会每次都要花费时间去fork一次,就可一直处理请求,不再需要结束进程。
调用原理大概为:web服务器fast-cgi进程管理器初始化->预先forkn个进程用户请求->web服务器接收请求->交给fast-cgi进程管理器->fast-cgi进程管理区接收,给其中一个空闲fast-cgi进程处理->处理完成,fast-cgi进程变为空闲状态,等待下次请求->web服务器接收内容->返回给用户。
3.模块模式。apache+php运行时,默认使用的是模块模式,它把php作为apache的模块随apache启动而启动,接收到用户请求时则直接通过调用mod_php模块进行处理。
模块模式是以mod_php5模块的形式集成,此时mod_php5模块的作用是接收Apache传递过来的PHP文件请求,并处理这些请求,然后将处理后的结果返回给Apache。
如果我们在Apache启动前在其配置文件中配置好了PHP模块(mod_php5),PHP模块通过注册apache2的ap_hook_post_config挂钩,在Apache启动的时候启动此模块以接受PHP文件的请求。
4.php-cli模式。php-cli模式属于命令行模式,对于很多刚开始学php就开始wamp,wnmp的开发者来说是最陌生的一种运行模式。该模式不需要借助其他程序,直接输入phpxx.php 就能执行php代码。
php怎么删除乱码
1. php文件本身的编码与网页的编码应匹配。
a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html;charset=gb2312"),静态页面添加,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。
b. 如果欲使用utf-8编码,那么php要输出头:header(“Content-Type: text/html;charset=utf-8"),静态页面添加,所有文件的编码格式为utf-8。保存为utf-8可能会有点麻烦,一般utf-8文件开头会有BOM,如果使用session就会出问题,可用editplus来保存,在editplus中,工具->参数选择->文件->UTF-8签名,选择总是删除,再保存就可以去掉BOM信息了。
2. php本身不是Unicode的,所有substr之类的函数得改成mb_substr(需要装mbstring扩展);或者用iconv转码。
php去除HTML标签的方法
在php中要去除字符串中的HTML标签方法有很多种,最常用的就是使用strip_tags函数一并去了,只保留字符了,还在就是有选择性的去除了这里要用正则表达式了,下面写二个php去除HTML标签的小例子
例1、php自带的函数可以去除/删除字符串中的HTML标签/代码。
strip_tags(string,allow):函数剥去 HTML、XML 以及 PHP 的标签。
参数:string,必填,规定要检查的字符串;allow,选填,规定允许存在的标签,这些标签不会被删除。
例2、清除HTML标签字符串中某些属性代码。
使用PHP处理从数据库中读取的文章HTML代码,然后用正则对代码进行匹配与修改,保存代码以后,用静态生成功能即可生成修改后的HTML页面了。
因为我们生成的代码是已经处理过的代码,所以就不会影响HTML页面的加载速度了。