如何将应用程序指向驻留在非 public 文件夹中的 database.php?

How point application to database.php which resides in a non-public folder?

既然我的应用程序已经构建完成,我正在研究如何保护它。如果我将 database.php 文件放在 public 文件夹之外的文件夹中,我如何从应用程序内部指向它?仅仅使用 include 结构是不够的,因为它只会到达 public 文件夹的顶部。

include '../database.php'; 

您可以使用 dirname()。假设您的文件夹结构是:

public_html/
  index.php
  contact.php
  whatever.php
private/
  database.php

在您的 public_html 文件中,您可以调用:

$db_file = dirname( $_SERVER[ 'DOCUMENT_ROOT' ] ) . '/private/database.php';
include_once( $db );

如果 public_html 是您的 $_SERVER[ 'DOCUMENT_ROOT' ]dirname 将为您提供包含 public_htmlprivate 的文件夹。然后你只需要将路径传递给 database.php.

如果再上一层(或更多),可以多次使用dirname

$db_file = dirname( dirname( $_SERVER[ 'DOCUMENT_ROOT' ] ) ) . '/private/database.php';

这会给你另一个文件夹。

可以多次使用include '../../../../database.php';每次..代表一个父文件夹 您也可以定义完整路径而不是相对路径 喜欢 include '/home/secret_folder/place_of_database/database.php';

您可以使用“./”来指定您所在文件的当前路径 然后使用它的许多'../'在文件夹之间移动并获取你想要包含的文件