【发布时间】:2010-11-19 23:55:16
【问题描述】:
windows 上 php 的奇怪问题...我的应用程序加载了一个“核心”文件,该文件在核心文件的顶部加载了一个设置文件、注册自动加载、初始化等我有 include_once("config.php") ;这适用于当前目录中的任何内容,如果我从单独的目录中包含核心文件,尽管它只是默默地忽略了配置文件的包含......以前有人见过吗?
/webroot/core.php
<?php
require_once "config.php";
//register autoloads
//do some initialization... standard stuff
?>
/webroot/config.php
<?php
define("WEB_ROOT","/webroot");
define("DB_USER","root");
// ... more stuff...
?>
/webroot/admin/index.php
<?php
require_once("../dbconnect.php");
echo WEB_ROOT;
// print string literal WEB_ROOT rather than value in config.php
?>
我的理解是文件操作是相对于发出请求的文件所在目录的,require_once("config.php")不应该选择相对于core.php的文件吗?这段代码就像我在 mac 或 Linux 上所期望的那样工作,但在 windows 上根本不工作,(如果我将要求更改为使用完整路径或 ../,它可以工作)
真正的疯狂是 require_once("config.php") 没有抛出任何错误但里面的代码没有被执行!
【问题讨论】:
-
有没有人注意到 index.php 正在加载 dbconnect.php 而不是 config.php 或 core.php?您还需要显示 dbconnect.php 的内容...
标签: php xampp windows-vista require-once