我想开发一个网站。我希望用PHP编写的网站的不同部分将位于不同的文件中。如“posts.php”,“recents.php”等。我试图使用函数“include”来包含目录“/ codes /”中的文件。但它不起作用。PHP包括功能不能正常工作
的事情发生时,如果我在原来的HTML页面的中间放<?php include '/codes/posts.php' ?>
(页面保存在PHP格式)。添加行之前的代码部分正在工作,但添加行之后的部分消失了。不知道为什么。我究竟做错了什么?
我想开发一个网站。我希望用PHP编写的网站的不同部分将位于不同的文件中。如“posts.php”,“recents.php”等。我试图使用函数“include”来包含目录“/ codes /”中的文件。但它不起作用。PHP包括功能不能正常工作
的事情发生时,如果我在原来的HTML页面的中间放<?php include '/codes/posts.php' ?>
(页面保存在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';
'通过set_include_path(“/无功/网络/包括/” PATH_SEPARATOR get_include_path());'是一个更好的办法,而且不需要您进行硬编码绝对路径,一次次 –
噢噢噢,我的天堂之前没有看到过,我必须检查一下。它只影响当前的工作脚本? – miah
包含路径在自动加载器被调用时使用,或者当include/require语句不能被解析为当前脚本的相对路径时,只需尝试'echo get_include_path();'以查看PHP使用的路径,通常它包含'/ usr/shared/lib/php:/ usr/lib/php'和其他一些路径......它就像你在.bashrc文件中所做的一样($ echo $ PATH)一个bash外壳显示类似的东西) –
固定分号的问题后,也考虑即:
如果路径定义 - 无论是绝对的(从驱动器盘符或\ Windows上,或/在Unix/Linux系统),或相对于当前目录(开始或..) - include_path将被完全忽略。例如,如果文件名以../开头,则解析器将在父目录中查找以查找所请求的文件。
所以无论是include './codes/posts.php';
或include 'codes/posts.php'
,第一个版本查找文件,相对于当前的工作目录,第二个使用include路径。
PS:最好使用require_once
或include_once
,以避免包括相同的功能/类定义多次,这将casuse问题(重新声明函数)
非常感谢你,它的工作现在! –
@EsperoShoumma:没问题。很高兴我能帮上忙。但是,如果您不介意我的说法,那么SO表示谢谢的方式是通过点击答案旁边的空心V标志(鼠标变成绿色的标志)来赞扬/接受答案 –
@EsperoShoumma:After看着你的个人资料,我注意到你还没有接受一个单一的答案,请[阅读此以了解如何接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-回答工作)。作为奖励,接受答案也会给你+2声望 –
你缺少报价。 '包括“/codes/posts.php”;' – Bora
检查,如果出口/模具被称为该脚本 –
您可能还需要启用错误报告,因此您可以更容易地看到什么错:http://php.net /manual/en/function.error-reporting.php – n0wak