我在这里绞尽脑汁,经过多次尝试和研究,我不得不向你寻求帮助。
我有两个文件如下:
- SITE/conf1g.php
- SITE / library / Mysqli.class.php
conf1g.php文件包含所有站点设置文件,Mysqli是使用文件conf1g.php中定义的变量连接数据库的原因
但我使用require_once在多个位置使用Mysqli.class.php。如何在conf1g.php __构建类中包含该文件? (该类位于Mysqli.class.php文件中)
我能得到的最好的是:
<?php
function __construct() {
$path = $_SERVER['SCRIPT_FILENAME'];
$pa = $path_parts = pathinfo($path);
$file = str_replace($path_parts['basename'],'',$_SERVER['SCRIPT_FILENAME']);
$file = str_replace($file,'',dirname(__FILE__));
$file = str_replace('library','conf1g.php',$file);
require_once($file);
//PDO CONNECTION CODE HERE
}
?>
但如果我使用子文件夹,则会出现错误:
-/var/www/folder/sub_folder/userhere.php
该网站位于:
-/var/www/SITE /
知道如何以动态方式包含此文件吗?或任何解决方案?
答案 0 :(得分:1)
感谢您的帮助。管理在这里制作一个半不优雅的代码,但它在所有情况下都有效并且没有问题。
$path = $_SERVER['SCRIPT_FILENAME'];
$pa = $path_parts = pathinfo($path);
$file = str_replace($path_parts['basename'],'',$_SERVER['SCRIPT_FILENAME']);
$file = str_replace($file,'',dirname(__FILE__));
$file = str_replace('library','conf1g.php',$file);
$file = str_replace($_SERVER['DOCUMENT_ROOT'],'',$file);
$subcasas = explode('/',str_replace($_SERVER['DOCUMENT_ROOT'],'',dirname(__FILE__)));
if(!is_file($file)){
$file = substr( $file, 1 );
for($x=0; $x<count($subcasas); $x++){
$file = str_replace($subcasas [$x],'..',$file);
if(is_file($file)){
break; //que deselegante
}
}
}
$this->file_config = $file;
require($this->file_config);
$this->user = $configuracoes_bd_mysql[USER];
$this->password = $configuracoes_bd_mysql[SENHA];
$this->host = $configuracoes_bd_mysql[HOST];
$this->db = $configuracoes_bd_mysql[DB];