PHP文件包含的问题

LiuRong 2000-07-26 09:17:00
举例:
/a.php中 <require "dir1/b.php">
/dir1/b.php中 <require "c.php">
/dir1/c.php

出错
请问用什么方法解决


...全文
751 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
peacock 2000-10-31
  • 打赏
  • 举报
回复
举例:
/a.php中 <require "dir1/b.php">
/dir1/b.php中 <require "c.php">
/dir1/c.php

如果你只是在 /dir1/b.php中 <require "c.php">,不会出错,因为你的b.php和c.php在同一个目录;
当你在/a.php中 <require "dir1/b.php">对于b.php是对的,因为你已经指定b.php在dir/下,但是当你递进到b.php时候,所包含的c.php与b.php在同一个目录,a.php并不通过b.php进行目录转化,直接找c.php,很肯定,当前目录(a.php的目录)并没有c.php,所以,要改为/dir1/b.php中 <require "dir1/c.php">
peacock 2000-10-31
  • 打赏
  • 举报
回复
如果你只是在 /dir1/b.php中 <require "c.php">,不会出错,因为你的b.php和c.php在同一个目录;
当你在/a.php中 <require "dir1/b.php">对于b.php是对的,因为你已经指定b.php在dir/下,但是当你递进到b.php时候,所包含的c.php与b.php在同一个目录,a.php并不通过b.php进行目录转化,直接找c.php,很肯定,当前目录(a.php的目录)并没有c.php,所以,要改为/dir1/b.php中 <require "dir1/c.php">
tttk 2000-10-21
  • 打赏
  • 举报
回复
遇到嵌套比较多的时候,试一试绝对路径,我的作法是,设$ROOT="/home/apache/htdocs/"(WEB根目录)然后在路径前加上$ROOT,如:include($ROOT."/dir1"),ok。
LiuRong 2000-10-12
  • 打赏
  • 举报
回复
我也发现应该用"dir1/c.php"方能引用.
但如果b.php又要被另外目录的一个文件引用这么办?
PHP的引用很成问题, 它仅仅将被引用的文件全部抄过来, 连基本的目录相对关系也不管.
所以我编程序只有将所以文件置于一个目录下.
或者是只编写一个库文件, 杜绝嵌套引用.
SimonDW 2000-10-12
  • 打赏
  • 举报
回复
不能使用 ".." "../"这样的相对路径。
但如果设定好PHP的INCLUDE路径,可以直接调。
kfzdp 2000-10-10
  • 打赏
  • 举报
回复
应该这样写,require('dir1/c.php');
因为这个路径是从调用 b.php 的 a.php 开始算的,有一个前提是,你的php.ini中的include path没有写任何内容。
SimonDW 2000-09-20
  • 打赏
  • 举报
回复
<? require "c.php";
?>
cherd 2000-09-19
  • 打赏
  • 举报
回复
文件重复require,路径根据最初的决定,实际上你的a.php在调用b.php中的require时
require的是a.php当前目录的c.php,当然会出错,解决的方法可以使用绝对路径来
require试试
祝你好运
gzproger 2000-09-10
  • 打赏
  • 举报
回复
错误的原因是require格式不对,应该是require("file"),少了括号。

另外单纯把扩展名更改为.inc是危险的,因为web server不认识.inc的扩展名。
举例,如果有头文件/passwords.inc,别人只要键入
http://yourservername/passwords.inc,就可以看见文件的内容。
解决方法是在web server中将inc扩展名设成和php含义相同,或者设定
php.ini中的include_path,把包涵文件都放到web 目录之外。但与其
如此麻烦,还不如干脆就把包涵文件的扩展名也保留叫做.php。
flyby 2000-09-08
  • 打赏
  • 举报
回复
你要包含文件,可以将所包含的文件的后缀名改为.inc(可任意改),
然后再要加入是:
<? include(file.inc)?>
关键是路径要正确,使用相对路径。
violetci 2000-07-27
  • 打赏
  • 举报
回复
require前,你把当前路径改到dir1试试看
wwwunix 2000-07-26
  • 打赏
  • 举报
回复
引用档案的方法有二种:require 及 include。二种方式提供不同的使用弹性。

require 的使用方法如 require("MyRequireFile.php"); 。这个函式通常放在 PHP 程式的最前面,PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它变成 PHP 程式网页的一部份。常用的函式,亦可以这个方法将它引入网页中。

另:报什么错?
radish 2000-07-26
  • 打赏
  • 举报
回复
应该是require("dir1/b.php")吧

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧