解决PHP内存溢出的问题
Allowed memory size of 33554432 bytes exhausted (tried to allocate 4554 bytes)
有时候我们在运行php程序的时候会发现 Fatal Error: Out of memory 这样的提示。 这有可能是程序中用到了大量了变量和对象,导致分配的内存不够用。我就遇到这样一个错误怎么改也改不了,后来上网查了一些资料,可是修改了php.ini文件里的memory_limit参数,可是无论我怎么改还是有这个错误提示,特别郁闷!后来我实在没有办法了,就在QQ群里面求助,有人告诉我在我的程序代码中加入“init_set("memory_limit", "128M");”这行代码就可以了,于是我试了一下,还真的行了。现在我把自己解决这个问题的两种办法分享给大家,希望能帮到和我一样遇到类似问题的人们。
方法一:我们可以在php.ini文件中把memory_limit参数默认的128M修改为256M或者更大:
memory_limit = 128M
方法二:如果是虚拟主机,我们可以在程序需要用到大内存的地方添加:
init_set("memory_limit", "128M");
这些可以在硬件环境方面解决我们的问题,不过最好的方法还是严格控制程序中内存的损耗。及时unset一些大而不用的变量或对象。
相关文档:
<?php
function toFixLen($str,$len){ //固定长度字符串的截取
if($len>=strlen($str)||!$len) return $str;
$len-=3;
  ......
$client = new SoapClient('http://www.webxml.com.cn/WebServices/ChinaZipSearchWebService.asmx?WSDL');
#$ret = $client->__call('getSupportProvince', array());
#$ret = $client->__call('getSupportProvinceCity', array());
$ret = $client->__call('getSupportCity', array('callP ......
原文出自: http://www.hly1980.cn/archives/118.html
需要分析日志时tail命令可是常需要用到的,可惜php内并没有提供类似的方法,所以自己实现了一个。
调用方式为tail($filename, $rows),每次默认读取1024字节作为缓冲,返回字符串数组,文件尾的行靠前(这里的行为和tail有所区别,如果需要以原序返回的请自行调用arr ......
1.取得当前内存使用大小:memory_get_usage()
2.计算执行时间:microtime(true)
3.设置script执行时间限制set_time_limit
4.设置内存限制ini_set("memory_limit","256M");
3.从远程下载文件的两个方法:
$contents=file_get_contents("http://www.govtrack.us/data/us/gis/zip4dist-prefix.t ......
<?php
/*
图片处理类:缩略,裁剪,圆角,倾斜
*/
class resizeimage
{
//图片类型
var $type;
//实际宽度
var $width;
//实际高度
var $height;
//改变后的宽度
var $resiz ......