Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文件\获取\内容的相对PHP路径_Php - Fatal编程技术网

文件\获取\内容的相对PHP路径

文件\获取\内容的相对PHP路径,php,Php,这似乎是一项简单而常见的任务,但我们无法让它发挥作用: 我们有两个人在做一个项目,两个人都把机器设置为本地服务器,最终有一个生产环境 在我们所有项目的负责人中,PHP如下所示: $feed = "/lib/php/backend/gateway.php?action=history"; $json = file_get_contents($feed, true); 使其工作的唯一方法是将其设置为完整URL,或者将其设置为localhost,如下所示: $feed = "http://local

这似乎是一项简单而常见的任务,但我们无法让它发挥作用:

我们有两个人在做一个项目,两个人都把机器设置为本地服务器,最终有一个生产环境

在我们所有项目的负责人中,PHP如下所示:

$feed = "/lib/php/backend/gateway.php?action=history";
$json = file_get_contents($feed, true);
使其工作的唯一方法是将其设置为完整URL,或者将其设置为localhost,如下所示:

$feed = "http://localhost/lib/php/backend/gateway.php?action=history";
$json = file_get_contents($feed, true);
后者显然适用于我们本地的盒子,可能也适用于生产,但是有没有一种方法可以使用相对路径来更干净一点

$feed = 'http://' . $_SERVER['HTTP_HOST'] . '/lib/php/backend/gateway.php?action=history';
当你尝试这个的时候--

请注意,您要求PHP在计算机上的该路径上打开一个文件。文件没有查询字符串,结果将是该文件中的PHP代码,而不是执行它的结果

当您要求
http://localhost/....
,您要求PHP打开一个URL,向执行代码并返回代码输出的web服务器发出HTTP请求

非常不同


但实际上,为什么不将gateway.php中的代码合并到当前文件中呢?没有理由发出HTTP请求在您自己的服务器上执行代码。

/lib/php/backend/gateway.php?action=history
转换为函数/类方法

例如

此外,无需生成另一个HTTP进程
(在本例中是
file\u get\u contents

我假设您指的是“根相对”路径。
$feed = "/lib/php/backend/gateway.php?action=history";
$json = file_get_contents($feed, true);
function gateway($action)
{
  // existing code
}
$json = gateway('history');