PHP包含功能不起作用

时间:2013-08-05 14:39:27

标签: php function include

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

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

3 个答案:

答案 0 :(得分:2)

解决分号问题后,还要考虑:

  

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

form the PHP docs

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

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

答案 1 :(得分:1)

试试这个,你忘了添加一个引用:

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

// Add a single quote: 
include '/codes/posts.php';
?>

答案 2 :(得分: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';