PHP ini_set 内存限制

8

当我们在代码中使用如下的ini_set时,内存限制是对所有其他代码都有效的吗?还是只对我们添加的代码有效?

ini_set('memory_limit', '512M');

谢谢。

2个回答

5

它仅在编写文件中有效。同一文件夹中多个php的最佳设置更改方式如下:

1. 创建名为“.htaccess”的文件,并添加以下代码行

php_value memory_limit '512M'

请注意,只有在您的服务器配置允许此目录的"AllowOverride"指令时,此方法才有效。

2. 添加自己的php文件,将其作为auto-prepend-file 选项

您可以在php.ini中实现此操作。

3. 直接更改您的php.ini中的“memory_limit”值

但是这会对您运行的所有php文件产生影响。


我不想更改默认的memory_limit,只想为特定的PHP文件增加它,所以当我添加ini_set('memory_limit', '512M');时,只有这个文件的内存才会使用512。其他PHP文件将使用默认限制。这就是我的理解。 - user6618536
是的,这是正确的。ini_set 只影响此 PHP 文件以及从该文件包含的所有文件。 - Radon8472
  1. 这个解决方案仅适用于Apache httpd。
  2. 这个解决方案很慢。
  3. 这是正确的方法™来做它(定义为:最具可移植性,性能最佳)。
- Ryan Parman
1
你可以将链接从 php.net/manual/de/ 更改为 php.net/manual/en/ - user5490177

1

这取决于您添加的位置。

如果在特定脚本中添加,则仅在该脚本运行期间有效。如果在应用程序级别进行设置,则将为该特定应用程序设置。


如果我将其添加到test.php中,那么当我们执行它时,内存将被设置为512M,然后在退出脚本后,默认的内存限制(不是512M)将用于其他PHP文件,对吗? - user6618536

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接