简单的PHP需要大文件问题

时间:2011-06-18 14:54:44

标签: php

我有2个php文件:

index.php (5KB)
blob.php (50,000KB - yes, 50mb php file)

现在,index.php包含if statement。像这样:

if (temp>3){
blah blah
} else {
require 'blob.php';
}

每次请求index.php或仅当if语句的那部分有效时,php会加载所有50MB吗?

编辑 - 清除问题更有意义。把50mb作为“非常大的文件”的一个例子。我知道你们会失去问题的焦点,所以我试图提前简化问题而且它适得其反。

4 个答案:

答案 0 :(得分:2)

是的,当然会很慢。 PHP文件中的50MB是荒谬的,你似乎已经知道这一点,所以我无法理解你为什么要这样做。

如果要将大量数据放入作用域,请使用文件读取函数以缓冲方式将原始数据从普通文件读取为字符串或其他内容。一个50MB PHP脚本文件是愚蠢的。

答案 1 :(得分:2)

由于require是一个普通的PHP函数,它只会在else的情况下执行,这意味着该文件不应该包含在另一个案例中。想一想文件中的echo即使没有执行else路径也会打印出来。

但是,为什么你有50MB的脚本? 如果您要包含多个脚本,那么自动加载器可能会更好,然后“手动”包含它们(请参阅here)...

答案 2 :(得分:2)

只有if语句的那部分有效时才会加载大文件。根据{{​​3}}的PHP文档(require只是一个专门版本):

  

include()语句包含并评估指定的文件。

因此,如果require未执行,则不会发生任何事情。

正如其他人所说,这将非常缓慢。如果所有这些都是PHP代码,则可能通过使用include等工具缓存已编译的脚本来获得轻微的性能提升。

答案 3 :(得分:0)

通常不需要这么大的脚本,除非你有特殊的理由这样做。 一个建议是你可能想要查看modular programming