程序临时修改php.ini 空白页

用ini_alter();ini_get();ini_restore();ini_set();这几个函数来改变

set_time_limit(60);
ini_set('memory_limit', -1);

if(!extension_loaded( "gd"))
    dl( "php_gd2.dll ");

ini_set('error_reporting', E_ALL);

date_default_timezone_set('PRC');

可以修改一部分如session.path   includes_path

2.加上2句话看报错信息

error_reporting(E_ALL);
ini_set('display_errors', "On");

说明 : 设定一个程式所允许执行的秒数,如果到达限制的时间,程式将会传回错误。
它预设的限制时间是30秒,max_execution_time的值定义在结构档案中
(在PHP3中叫做php3.ini,在PHP4则叫做php.ini),如果将秒数设为0,表示无时间上的限制。

 

本指令设定了一个脚本所能够申请到的最大内存字节数。这有助于防止写得不好的脚本消耗光服务器上的可用内存。要使用此指令必须在编译的时候激活。因 此 configure 一行中应该包括:–enable-memory-limit。如果不需要任何内存上的限制,必须将其设为 -1。
自 4.3.2 起,当激活了 memory_limit,PHP 函数 memory_get_usage() 便可以使用了。
当使用 integer 类型时,其值以字节为度量单位。还可以用简化符号,说明见此 FAQ。

在phpchina的论坛上,有人这样说:
memory_limit是设置PHP使用内存时空间,一般设置为内存的四分之一,应该就查不多了。如512M内存设置128M,1G内存设置256M。设置太大会影响系统速度,因为系统和数据库及其他程序同样需要内存空间,一般系统和数据库内存空间是自己分配的。

出现显示空白页的情况,特别是在打开模块管理相关页面的时候,出现这个问题一般有2个原因造成。
1、内存不够
2、延时不够

 

如果你ini_set(“memory_limit”, *)返回了false,

不妨检查下, 是否开启了安全模式 (手册中没有述及)..

一句话, 记录下.

在安全模式下不能使用ini_set的指令:

1. max_execution_time
2. memory_limit
3. child_terminate

 

想要知道编写的 PHP 脚本需要占用多少内存么?很简单,直接使用 PHP 查看当前分配给 PHP 脚本的内存的函数 memory_get_usage() 就可以了。

下面是使用示例:

echo memory_get_usage(), '<br />'; // 313864

$tmp = str_repeat('http://blog.huachen.me/', 4000);

echo memory_get_usage(), '<br />'; // 406048

unset($tmp);

echo memory_get_usage(); // 313952

上面的程序后面的注释代表了它们的输出(单位为 byte(s)),也就是当时 PHP 脚本使用的内存(不含 memory_get_usage() 函数本身占用的内存)

由上面的例子可以看出,要想减少内存的占用,可以使用 PHP unset() 函数把不再需要使用的变量删除。类似的还有:PHP mysql_free_result() 函数,可以清空不再需要的查询数据库得到的结果集,这样也能得到更多可用内存。

PHP memory_get_usage() 函数还可以有个参数,$real_usage,其值为布尔值。默认为 FALSE,表示得到的内存使用量不包括该函数(PHP 内存管理器)占用的内存;当设置为 TRUE 时,得到的内存为不包括该函数(PHP 内存管理器)占用的内存。

所以在实际编程中,可以用 memory_get_usage() 函数比较各个方法占用内存的高低,来选择使用哪种占用内存小的方法。

你可能感兴趣的:(PHP,空白页)