关于PHP包含文件的方法

Begin

今天陆陆续续在重新写一些后台程序,用到了一些共用的PHP文件,所以顺便学习了一下几种包含文件方式

  1. include

    最常用的包含文件方法,如果遇到错误会显示warning,但是不会影响下面脚本的执行

  2. require

    比include方法严格,如果遇到错误,会显示错误并终止下方脚本的执行

  3. require_once

    同require,但是会检查该php文件是否已经被引用过,如果引用过了,就不会再引用,这个方法很好用,在一些需要反复包含的文件里面用这个方法可以防止重复定义的错误。

还有一个关于文件定位的问题,简单的网页不会产生,但是在重重包含的项目里会有这样的困扰,假如/a.php包含了/php/b.php,然后/php/b.php这个文件里又要包含/c.php,正常情况下在/php/b.php中用一下代码是不会出错的:

include "../c.php";

然而,PHP坑爹的地方就在于,/a.php包含了/php/b.php后,/php/b.php里面的include "../c.php";语句就出错了,因为被/a.php包含之后相当于/php/b.php也位于/中了

解决方法是在/php/b.php文件里,include语句改为:

dirname(__FILE__)."../c.php";

dirname(__FILE__)的作用是无论/php/b.php被誰包含了,include语句里都有以/php/b.php所在的路径为准,不会改变原有的路径

时间: 2024-08-01 12:10:15

关于PHP包含文件的方法的相关文章

笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用

Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDispatcher 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <filter>     <filter-name>struts2</filter-name>     <filter-class>org.apache.struts2.di

Radmin Server-3.5 完美绿色破解版(x32 x64通用) 第三版 + 单文件制作方法

Radmin Server v3.5 汉化破解绿色版(x32 x64通用) 第三版 下载链接: http://pan.baidu.com/s/1dFmb9fF 密码: 95gd 2016年7月8日更新第三版1.修复在单文件中系统位宽判断错误的问题,修复自动增加防火墙白名单命令错误的问题,增加卸载时清除注册表设置信息2.增加单文件制作方法和单文件成品3.修改默认设置的方法有所改变,请查看下方的:二.如何修改默认安装设置? 4.修复启动时不加载 mirror driver 的问题(不加载这个会导致远

ThinkPHP包含文件

在当前模版文件中包含其他的模版文件使用include标签,标签用法: <include file='模版表达式或者模版文件1,模版表达式或者模版文件2,...' /> 使用模版表达式 模版表达式的定义规则为:模块@主题/控制器/操作 例如: <include file="Public/header" /> // 包含头部模版header <include file="Public/menu" /> // 包含菜单模版menu &l

运用php上传大文件配置方法

网站建设:运用php上传大文件配置方法如下: 翻开php.ini, 1.第一找出 file uploads区域,有影响文件上传的以下几个参数: file_uploads = on ;能否准许经过http上传文件的开关.默许为on即是开 upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,假设没指定就会用系统默许的临时文件夹 upload_max_filesize = 8m ;望文生意,即准许上传文件大小的最大值.默许为2m 2.在resource limits区域,还有参数 ;

【转】matlab读取文件各种方法

本技术支持指南主要处理:ASCII, binary, and MAT files.要得到MATLAB中可用来读写各种文件格式的完全函数列表,可以键入以下命令: help iofun MATLAB中有两种文件I/O程序:high level and low level. High level routines: 包括现成的函数,可以用来读写特殊格式的数据,并且只需要少量的编程.Low level routines: 可以更加灵活的完成相对特殊的任务,需要较多的额外编程. High level ro

两种动态加载JavaScript文件的方法

两种动态加载JavaScript文件的方法 第一种便是利用ajax方式,第二种是,动静创建一个script标签,配置其src属性,经过把script标签拔出到页面head来加载js,感乐趣的网友可以看下 动态加载script到页面大约有俩方法 第一种便是利用ajax方式,把script文件代码从背景加载到前台,而后对加载到的内容经过eval()实施代码.第二种是,动静创建一个script标签,配置其src属性,经过把script标签插入到页面head来加载js,相当于正在head中写了一个<sc

C# 对包含文件或目录路径信息的 System.String 实例执行操作

C# 对包含文件或目录路径信息的 System.String 实例执行操作 在字符串操作中有一类比较特殊的操作,就是对包含文件或目录路径信息的 System.String 实例执行操作.比如根据一个表示路径的字符串获取其代表的文件名称.文件夹路径.文件扩展名等.在很多时候,我们喜欢用substring加indexof来进行字符串的修改.代码如下: string filePath = @"C:\test\test2\test3.txt"; //通过substring加indexof方式获

用程序读取CSV文件的方法

CSV全称 Comma Separated values,是一种用来存储数据的纯文本文件格式,通常用于电子表格或数据库软件.用Excel或者Numbers都可以导出CSV格式的数据. CSV文件的规则 0 开头是不留空,以行为单位.1 可含或不含列名,含列名则居文件第一行. 2 一行数据不垮行,无空行. 3 以半角符号,作分隔符,列为空也要表达其存在. 4 列内容如存在,,则用""包含起来. 5 列内容如存在""则用""""包

PHP核心编程--目录操作(包含文件操作)

一.目录操作 1.    创建目录 创建目录mkdir(目录名称)  //返回值为布尔 一次性创建主目录及其子目录 判断是不是一个目录is_dir  //返回true,false 判断目录或文件是否存在file_exists  //返回值为布尔 返回路径中的目录部分 dirname 2.    打开目录, opendir — 打开目录句柄 opendir(目录路径) //返回的是一个目录句柄. readdir(目标句柄)  //读取目录中的条目,  目录名为零的处理 //目录名中文的处理 ico