PHP包含函数不工作

PHP包含函数不工作,php,function,include,Php,Function,Include,我正在努力开发一个网站。我想,该网站的不同部分,将在PHP编写将在不同的文件。例如“posts.php”、“recents.php”等。我试图使用函数“include”来包含目录“/codes/”中的文件。但它不起作用 发生的事情是,如果我在原始HTML页面的中间放置 (页面以PHP格式保存)。添加行之前的代码部分正常工作,但添加行之后的代码部分消失。不知道为什么。我做错了什么?试试这个,你忘了添加一个引号: <?php // Enable error logging: error_re

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


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

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

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

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

您很可能遇到了路径问题
/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';

固定半结肠问题后,也考虑:

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

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


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

您缺少报价
包括“/code/posts.php”检查脚本中是否调用了exit/die。您可能还希望启用错误报告,以便更容易地看到出现了什么问题:我假设@Bora的意思是“冒号”(
)而不是引号?在linux机器上,这不会尝试从根目录启动路径吗?抱歉,我在主脚本中添加了代码,忘了在这里添加它们。现在添加。您收到了什么错误?没有错误。添加的行消失后,剩下的代码就消失了。无错误报告。只需将定义的关键字替换为-1即可查看每个错误。:)<代码>设置包含路径('/var/www/includes/'.path_SEPARATOR.get_include_path())
是一种更好的方法,并且不需要您一次又一次地硬编码绝对路径。哦,我以前没见过这个,我必须检查一下。它只影响当前工作脚本?调用自动加载程序时使用include路径,或者当include/require语句无法解析为当前脚本的相对路径时,只需尝试
echo get_include_path()
要查看PHP使用的路径,通常它包含类似于
/usr/shared/lib/PHP:/usr/lib/PHP
的内容和一些其他路径。。。它就像你在.bashrc文件中看到的一样(
$echo$PATH
在bash shell上显示了类似的内容)非常感谢,它现在可以工作了@埃斯佩罗舒玛:没问题。很高兴我能帮忙。不过,如果你不介意我说的话,那么表达感谢的方式就是向上投票/接受答案,点击答案旁边的空心V符号(鼠标悬停时变绿的那一个)@EsperoShoumma:看了你的个人资料后,我注意到你没有接受一个答案。作为奖励,接受答案会给你+2声誉,Too文档中“包含路径”是什么意思?@Gnuey:每当文档提到
包含路径时,文本都是可点击的。但简而言之:PHP在多个位置查找
include
文件:当前目录,以及
include_path
中定义的一些全局路径(
get_include_path
set_include_path
允许您管理它们)只需编写脚本
var_dump(explode(路径分隔符,get_include_path())
查看将使用哪些目录