最新消息:

PHP代码文件结构

PHP学习笔记 admin 2304浏览 0评论

一、php会解析哪些扩展名的文件

一般情况下,PHP脚本的扩展名为php、php4、php5,用这些扩展名可以表示脚本的类型或版本,让php解释器解析。但在实际使用中,php脚本的扩展名可以为任何名字,这跟web服务器的配置有关。如apache服务器可以设置httpd.conf配置文件来指定PHP解析器能解析哪些扩展名上网脚本文件。

20130808114125

如果在httpd.conf中将php脚本扩展名改为.html或者.htm,这样所有的HTML文件都会通过PHP解析器解析执行。

二、require()和include()

PHP提供了4个不同的语句来进行代码重用:include、include_once、require、require_once.

(1)require与require_once

20130808114800

require包含的文件名可以是变量,即变量的值是需要包含的文件的路径。这样增加了灵活性,也是导致出现文件包含漏洞的原因。

ps:当使用require命令引用多个文件时,如果这些文件中包含同样的函数,则解释器会报“无法重复定义函数”的错误。如果,这些引用的文件中有同名的变量,则不会报错。

require_once和require语法是一样的,不同之处是require_once会先检查该引用文件是否已经被引用到当前脚本中,如果没有则引用,反之则跳过不会再引用。

(2)include和include_once

使用include和include_once的语法和上面介绍的一样。

和require一样,当使用include命令引用多个文件时,如果这些文件中包含同样的函数,则解释器会报“无法重复定义函数”的错误。如果,这些引用的文件中有同名的变量,则不会报错。

include除了可以引用本地文件之外,还可以通过url来引用远程服务器上的文件,引入的是远程文件的运行结果后的文件。要使用include引入远程文件,需要将php.ini中的allow_url_fopen和all_url_include都设置为On。

对于include还可以像函数一样获得其返回值,对于include调用成功其返回值为TRUE和1,失败则返回FALSE和0.可以根据这些返回值判断include是否成功,可以增强代码的安全性和实用性。不过这在引入远程文件时是不行的,除非远程文件的输出中含有合法的PHP开始和结束标志。当需要比较include的返回值时,由于它是一种特殊的语言结构类型,所以在条件语句中调用时必须使用括号将其包含在内,使用方法如下:

<?php
    if ((include('a.php'))==TRUE)
    {
    	echo "success";
    }
    else
    {
    	echo "fail";
    }
?>

(3)include和require的区别

include/include_once和require/require_once两者的区别只是在于错误处理的不同。在include执行失败或错误的时候只是产生一个警告,而require则会产生一个致命错误,停止脚本的执行。

在使用习惯上,对于全局都要使用的源代码文件使用require引入,如全局函数和变量等,一般使用require放在脚本代码的最前面,这样脚本开始执行前会先读入require引入的脚本代码,使其变成调用脚本的一部分,如果缺少文件或引入失败则中止脚本的运行。而对于include一般放在流程控制的处理区中。

三、MVC结构

20130808152920

20130808153050

转载请注明:jinglingshu的博客 » PHP代码文件结构

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址