由于我在localhost
上开发但在其他地方部署,因为我不想强迫我的网站在Windows分区的根目录下(目前是F:\ web_dev \ htdocs),这样的代码:
require_once($_SERVER['DOCUMENT_ROOT'] . '/projXY/database/database_common.php');
OdbcExec($sql); // defined in the file above
导致Netbeans发出“警告:未知功能”。
现在,我可以通过使用如下目录结构来解决这个问题:
F:\project_1
F:\project_2
而不是
F:\web_dev_htdocs\project_1
F:\web_dev_htdocs\project_2
然后使用
require_once('/database/database_common.php');
但是 对最终用户安装我网站的位置施加了限制。
到目前为止,最简单的方法是告诉NetBeans哪个本地目录对应$_SERVER['DOCUMENT_ROOT']
,但我找不到配置选项。我确信这是一个常见问题。有什么建议吗?
更新:NetbBeans v7.0.1
答案 0 :(得分:3)
只需将/path/to/projXY/database/
目录添加到项目的包含路径中即可。然后,Netbeans将在那里获取文件并将其用作代码参考。
http://netbeans.org/kb/docs/php/project-setup.html#phpIncludePath
依赖$_SERVER['DOCUMENT_ROOT']
通常是一个坏主意。首先,它消除了通过控制台/命令行运行部分应用程序的能力。
您应该使用可配置的绝对路径来共享库,或者像Brandon's answer那样使用__DIR__
(PHP 5.3)或dirname(__FILE__)
答案 1 :(得分:2)
不确定这是否是您要找的,但我通常使用:
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'file.php');