我正在使用AJAX开发PHP。由于AJAX,您不能说在某个特定时间点您在哪个目录中。所以要调用文件,我不能使用固定的路径和文件名。我想要给出从根目录开始到文件的路径。它运行良好。
但是如果我想包含一个文件,问题就来了。假设我想包含一个test.php文件,如:
include_once("http://localhost/sms/test.php");
包含文件,但问题是:
<?php
$i = 9;
include_once("http://localhost/sms/test.php");
?>
test.php包含
<?php
echo $i;
?>
这段代码应该给出如下输出:
9
…但它什么也没给。我知道原因:浏览器通过单独的HTTP请求请求服务器,因为路径包含"HTTP",所以服务器返回HTML输出。所以$i不存在:没有输出。
我如何调用文件包括使用他们的路径从根运行AJAX正确?
try require_once($_SERVER['DOCUMENT_ROOT'] . '/sms/test.php');
您应该永远不要在本地文件路径中使用主机名。相反,使用$_SERVER['DOCUMENT_ROOT']
,如下所示:
require_once("{$_SERVER['DOCUMENT_ROOT']}/sms/test.php");
这将在文件路径的开头附加/var/www
(或任何根路径)之类的内容。用require_once()
代替include_once()
效果更好;如果PHP找不到要包含的文件,它会提示并停止执行,而不是可能静默失败。