-2

我发现了几个类似的问题,但我的细微差别略有不同——即,我无法编辑包含的文件。

我有一个目录,里面有几十个同一个 php 应用程序的克隆。我需要读取每个配置文件,这是一个将数据库设置定义为常量的 php 文件,然后连接到该实例的数据库。显然,由于所有配置文件都是针对同一个应用程序的,遍历目录并包含所有配置文件会给我 100 条“已定义常量 DB_HOST”的通知。

如果我可以为每个配置文件添加一个 php 命名空间,这将很容易,但我不能修改配置文件,只能读取它们。由于不可能在读取目录内容的循环中构建命名空间,所以我被卡住了。

除了使用 fopen/file_get_contents 读取文件并重新解析内容之外,是否有一些巧妙的方法可以遍历这些配置文件以包含它们的常量值?我觉得我必须忽略一些东西。

谢谢

4

3 回答 3

1

这显然是一个了不起的设计问题,应该通过改变设计来解决,而不是通过愚蠢的技巧来解决不断出现的问题,让整个混乱局面完好无损。

于 2012-05-01T15:40:14.500 回答
0

你没有忽略任何东西。从手册

一旦定义了常量,就永远无法更改或取消定义。

顺便说一句,我希望你能获得一个用于重构该烂摊子的项目获得批准。:)

于 2012-05-01T15:42:02.103 回答
0

除了在每个文件上使用包含之外,您不能简单地将每个文件作为文本文件打开并使用 将每个文件的内容读入字符串fread()吗?

然后,您可以使用正则表达式解析出您想要的字段,并且由于您没有将配置文件包含为 PHP,因此您将回避持续存在的问题。

于 2012-05-01T16:31:33.973 回答