我用php编写的开发和生产网站都需要使用目录迭代器来获取某些文件。目录迭代器从驱动器的基目录开始,即c:/。但是,在dev和prod服务器上,webroot文件夹位于不同的位置。
有没有办法让目录迭代器从webroot开始。或者我可以使用一些类似的方法,以便我可以在dev和prod上使用相同的代码,而不必担心应用程序存储在磁盘上的哪个位置。
答案 0 :(得分:0)
使用$path
实例化DirectoryIterator
。只需将其更改为webroot。
DirectoryIterator::__construct() ( string $path )
- path:要遍历的目录的路径。
您可以在每个环境的配置文件中存储webroot的路径,或者在运行时确定它,并将其保存为常量,或者在引导期间将其保存在注册表或其他可访问的位置。例如,如果您通过位于webroot中的index.php中的FrontController调用您对应用程序的直接访问权限,则可以执行以下操作:
$root = dirname(__FILENAME__);
并将其存储在常量或注册表中。
答案 1 :(得分:0)
使用getenv(“DOCUMENT_ROOT”)启动路径