PHP中include和require绝对路径、相对路径问题
在写PHP程序时,经常要用到include或require包含其他文件,但是各文件里包含的文件多了之后,就会产生路径问题。
如下目录:
<web>(网站根目录)
├<A>文件夹
│ │
│ └1.php
├<B>文件夹
│ │
│ └2.php
└index.php
现在根目录下的index.php要包含A文件夹内的1.php文件,则用include "./A/1.php"即可
而1文件夹内的1.php又包含了B文件夹内的2.php,则1.php内写上include "../B/2.PHP"即可
可是要知道,当index.php包含了1.php之后,编译是在index.php里进行的,也就是index.php所包含文件里的include都是相对于index.php的,那么1.php被包含进index.php里了,那么就要相对于index.php寻找2.php了。而上面说了,1.php里写的是include "../B/2.php",现在编译文件已经相对于网站根目录了(即相对于index.php),"../"则意味着还要再返回上一级目录寻找,那么怎么会找得到。
在网上也寻找过一些方法,最好的办法还是都采用绝对路径方法较妥。可以定义一个单入口文件,将要包含的文件包含进来,定义一个常量define("__ROOT__",dirname(__FILE__));,那么在写后面的文件过程中,只需要采用绝对方式,加上__ROOT__就行了。
PHP中include和require绝对路径、相对路径问题的更多相关文章
- php 中 include 与 require 的区别
以下内容转自:https://blog.csdn.net/hsd2012/article/details/51089785 网上太多关于php中include与require区别.其实说的都是经不起验 ...
- PHP中include()与require()
引用文件的方法有两种:require 及 include. require 的使用方法如 require("file.php"); .这个函数通常放在 PHP 程序的最前面,PHP ...
- php中include()和require()的区别
1.引用文件方式 对 include()来说,在include()执行时文件每次都要进行读取和评估:而对于require()来说,文件只处理一次(实际上,文件内容替换 了require()语句.这就意 ...
- PHP中include和require的区别详解
1.概要 require()语句的性能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估:而对于require()来说, ...
- PHP中include和require(转)
昨天去面试一个php开发,看到笔试试卷上有这么一道题目: include和require有什么区别? 这个题目可以称得上php开发面试中的必考题目,网上也有各种答案和解释.但是我当时却真的想不起来了. ...
- 2016/3/27 PHP中include和require的区别详解
1.概要 require()语句的性能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估:而对于require()来说, ...
- PHP 中 include 和 require 的区别详解
require() 语句的性能与 include() 相类似,都是包括并运行指定文件.除了处理失败的方式不同之外.require 在出错时产生 E_COMPILE_ERROR 级别的错误,终止脚本运行 ...
- PHP中include、require、include_once、require_once的区别
include:使用include引用外部文件时,只有代码执行到include代码段时,调用的外部文件才会被引用并读取,当引用的文件发生错误时,系统只会给出个警告错误,而整个php文件会继续执行.re ...
- PHP中include和require的区别
include和require的区别,其实两者没有太大的区别,如果要包含的文件不存在,include提示notice,然后继续执行下面的语句,require提示致命错误并且退出. 根据测试,win32 ...
随机推荐
- C语言第六节基本运算符
算术运算 C语言一共有34种运算符,包括了常见的加减乘除运算 加法运算+ 除开能做加法运算,还能表示正号:+5.+90 减法运算- 除开能做减法运算,还能表示符号:-10.-29 乘法运算* 注意符号 ...
- 共享锁(S锁)和排它锁(X锁)
1 什么叫数据库共享锁[S]锁和[X]锁 共享锁[S锁] 又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁.这保 ...
- 1.4.2 solr字段类型--(1.4.2.6)使用外部文件和程序
1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...
- 互联网时代的社会语言学:基于SNS的文本数据挖掘
今年上半年,我在人人网实习了一段时间,期间得到了很多宝贵的数据,并做了一些还算有意义的事情,在这里和大家一块儿分享.感谢人人网提供的数据 与工作环境,感谢赵继承博士.詹卫东老师的支持和建议.在这项工作 ...
- Java基础知识强化之IO流笔记80:NIO之 ServerSocketChannel
1. Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样.ServerSocketChannel类在 ...
- 【Linux/Ubuntu学习5】Ubuntu 下android 开发,eclipse不能识别手机
ubuntu下eclipse不能识别手机解决方法: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1) 在终端运行 lsusb 会发现结果 ...
- javascript组件开发之基类继承实现
上一篇文章大概的介绍了一下关于javascript组件的开发方式,这篇文章主要详细记一下基类的编写,这个基类主要是实现继承的功能 为什么要封装基类? 由于这次重构项目需要对各种组件进行封装,并且这些组 ...
- 【JS Note】字符串截取
Js中字符截取常用的三个函数:slice().substring().substr(). slice(): slice(start,[end]) 第一个参数代表开始位置,第二个参数代表结束位置的下一个 ...
- css3 transfrom使用以及其martix(矩阵)属性与其它属性的关系
写法 其属性martix与skew .scale .translate之间的关系 兼容性 : IE9+ : -ms-transform : IE9只支持2D转换 fire ...
- 深入浅出ExtJS 第四章 表单与输入控件
4.1 制作表单 var form = new Ext.form.FormPanel({ title:'form', defaultType:'textfield', buttonAlign:'cen ...