我有这样的东西,但它不起作用,似乎因为显示了servername而无法正常工作。
DEFINE("APP_FOLDER", "website");
DEFINE("MODULES_DIR", $_SERVER["SERVER_NAME"].APP_FOLDER."/modules");
include_once(MODULES_DIR."/class-ViewRender.php");
它显示错误:*警告:include_once(localhost / website / modules / class-ViewRender.php):无法打开流。*
我还想要的是我可以拥有这样的文件
myappfolder / pages / users.php - >应成功包含文件类-ViewRender.php
myappfolder / pages / administration / administrativeusers.php - >这里也应成功包含文件类-ViewRender.php。
如何在每个php文件中实现这一点,包括相同的config.php?
答案 0 :(得分:1)
这是初学者在PHP面临的一个主要问题,我受到了很多影响。解决问题的最佳方法是使用'File system_path'
例如。
$white_list = array('127.0.0.1', '127.0.0.0','::1');
defined('DS')? null:define('DS', DIRECTORY_SEPARATOR);
if(!in_array($_SERVER['REMOTE_ADDR'], $white_list)){
// Remote SERVER
define('SITE_ROOT', DS.'home'.DS.'some_name'.DS.'public_html'.DS.'your_web_root_folder_name');
}
else{
//localhost
define('SITE_ROOT', 'c:'.DS.'wamp'.DS.'www'.DS.'your_web_root_folder_name');
}
然后你可以简单地在PHP文件中使用SERVER_ROOT常量。
答案 1 :(得分:0)
好的,我想我已经解决了。
诀窍是在主文件夹中有一个config.php文件,我的意思是,它是Web应用程序的根目录。
然后你可以在那里声明常量,如CLASSES_FOLDER,“/ modules / classes”
然后,只要您有下一行,请求PHP脚本的深度无关紧要:
//Superdeep.php
include_once("../../../../../config.php");
你将能够使用config.php中的任何内容。
有没有办法避免必须猜测所有必须放置的“../”才能使其正常工作?我还不知道......