解决require/include的路径问题

前一阵做PHP开发,为了在嵌套的页面中,依然能正确地调用到需要调用的文件而苦恼,搜索网上,看来看去,很多都是substr加dirname,在自己的程序里测试,还是有搞不定的时候,后来又看到一个 set_include_path的函数,将该函数加在每个页面中。觉得这个方法尚可。于是在参数中写的是网站的根目录。总算解决问题了。

set_include_path(“E:/aaa/bbb”);

但是后来又想到一个问题,我在Windows下作的开发,如果需要把程序放在Linux/FreeBSD的服务器上,难道在上传程序还一个个手动修改根目录的路径么?

一直没有好的办法,也就拖着了。今天灵光一现,查找了一下,发现PHP的$_SERVER超全局变量数组有一个值DOCUMENT_ROOT,可以显示一个网站的根目录的路径,而且$_SERVER是超全局的,在一个系统的任何一个PHP文件的任何一个地方都可以调用,其值也不会受到影响。于是我把那个表达式修改成

set_include_path($_SERVER[‘DOCUMENT_ROOT’]);

替换,然后测试了下,一切正常,OK,大功告成。