如何将应用程序指向驻留在非 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_html
和 private
的文件夹。然后你只需要将路径传递给 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';
您可以使用“./”来指定您所在文件的当前路径
然后使用它的许多'../'在文件夹之间移动并获取你想要包含的文件
既然我的应用程序已经构建完成,我正在研究如何保护它。如果我将 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_html
和 private
的文件夹。然后你只需要将路径传递给 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';
您可以使用“./”来指定您所在文件的当前路径 然后使用它的许多'../'在文件夹之间移动并获取你想要包含的文件