0

我有一个名为“functions.php”的 php 脚本,它既可以由自身执行,也可以由放置在其他文件夹中的其他脚本执行。因此,我在尝试包含数据库文件的代码中遇到了问题。起初,我想出了一个快速的懒惰解决方法。我 amde 脚本两次询问同一个文件,如下所示:

include('../database_file.php');
include('../../database_file.php'); 

但是,这不是一个好的解决方案。它每次都会发出警告,因为它无法加载其中一个文件。因此,我决定创建一个 Switch 语句,读取 functions.php 文件是由自身调用还是从其他地方调用,然后从正确的路径包含该文件。(如果有更好的解决方法,请告诉。)

我使用下面的代码来读取当前路径,因此我可以创建一个 IF 语句来决定应该从哪里加载我的数据库文件。

realpath(dirname(__FILE__));

这将返回与此类似的路径:

/var/www/网站/公共

如何仅存储变量路径中的最后一个文件夹/删除最后一个/之前的所有内容?

4

1 回答 1

1

怎么用absolute path?这样你就不会关心实际的文件夹是什么,无论如何都会加载文件。例如

include('/var/www/website/public/path_to_file.php');

编辑

既然你说你不能使用absolute path,那么你可以explode在路径的变量上使用函数,这样它就变成了一个数组,现在很容易得到数组的最后一个条目,这是你的最后一个文件夹,并将它存储在一个变量中

$path = realpath(dirname(__FILE__));
$folder_array = explode('/', $path);
$i = count($folder_array) - 1;
$folder = $folder_array[$i];
echo 'Folder is: ' . $folder;

这将输出

Folder is: public
于 2013-05-20T06:35:20.920 回答