从PHP中的父目录指向一些文件

时间:2017-08-07 15:49:04

标签: php

我在本地计算机上使用XAMPP服务器。我们假设我的目录结构如下

-api/
  - products.php
-includes/
  - settings.php

因此,如果我想要包含products.php文件,请从settings.php页面开始,然后在我的include './includes/settings.php';中使用local machine,这样就可以了。但是当我将它移动到远程服务器时,我必须使用include '../includes/settings.php';。区别在于./../。为什么这在本地和远程服务器上有所不同,解决方案是什么.. ??

2 个答案:

答案 0 :(得分:0)

为避免任何问题尝试使用 DIR ,它会为您提供与当前文件存在位置相比的路径,同时尝试使用include_once而不是include。

  

DIR :文件的目录。如果在包含内使用,则   返回包含文件的目录。这相当于   目录名(FILE)。此目录名称没有尾部斜杠   除非它是根目录。

include_once __DIR__.'/../includes/settings.php';

答案 1 :(得分:0)

本地计算机和服务器的目录结构之间可能存在一些差异。解决这个问题的一种方法是使用命名空间和“使用”语句。

在您的products.php中,在类页面的顶部创建一个命名空间。类似的东西:

namespace YourProject\Api;

use YourProject\Includes\Settings;

在您的settings.php类中使用命名空间(以及您可能需要的任何用语句。)类似于:

namespace YourProject\Includes;

use YourProject\Api\Products;

然后,您可以创建可能需要的新对象,例如在您的设置类中:

$products = new Products();

或者在您的产品类中:

$settings = new Settings();

查看Namespace and Importing from the PHP Docs了解详情。