3

我正在尝试开发一个网站。我希望将用 PHP 编写的网站的不同部分将在不同的文件中。例如“posts.php”、“recents.php”等。我正在尝试使用“include”函数来包含目录“/codes/”中的文件。但它不起作用。

发生的事情是,如果我把<?php include '/codes/posts.php' ?>原始 HTML 页面放在中间(页面以 PHP 格式保存)。添加的行之前的代码部分正在工作,但添加的行之后的部分消失了。不知道为什么。我究竟做错了什么?

4

3 回答 3

2

修复分号问题后,还要考虑:

如果定义了路径——无论是绝对路径(在 Windows 上以驱动器号或 \ 开头,或在 Unix/Linux 系统上以 / 开头)还是相对于当前目录(以 . 或 .. 开头)—— include_path 将被完全忽略。例如,如果文件名以 ../ 开头,解析器将在父目录中查找请求的文件。

形成 PHP 文档

所以include './codes/posts.php';or include 'codes/posts.php',第一个版本查找文件,相对于当前工作目录,第二个使用包含路径。

PS:最好使用require_onceor include_once,以避免多次包含相同的函数/类定义,这会导致问题(重新声明函数)

于 2013-08-05T14:48:53.467 回答
1

很可能,您遇到了路径问题。/code/posts.php是一个绝对路径,所以除非你有一个名为code在基本目录中有一个名为的文件夹,否则它无法找到该文件。

/您需要通过删除第一个( )来设置相对路径,code/posts.php或者您需要声明主目录的绝对路径

define("BASEDIR", '/home/username/public_html/'); #typical path on a linux server using cpanel
include BASEDIR . 'code/posts.php';
于 2013-08-05T14:47:54.383 回答
1

试试这个,你忘了加单引号:

<?php
// Enable error logging: 
error_reporting(E_ALL ^ E_NOTICE);

// Add a single quote: 
include '/codes/posts.php';
?>
于 2013-08-05T14:41:25.810 回答