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 环境配置
PHP 概述
:
PHP是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。
PHP 功能
:
PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
PHP 特性包括
:
★
开放的源代码:所有的PHP源代码事实上都可以得到。
★
PHP是免费的。
★
php的便捷性 : php十分便捷,学习简单。
★
基于服务器端:由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。
★
嵌入HTML:因为PHP可以嵌入HTML语言,所以学习起来并不困难。
★
简单的语言:PHP坚持脚本语言为主,与Java和C++不同。
★
效率高:PHP消耗相当少的系统资源。
★
图像处理 ......
//转换为UNIX时间戳
function strtotimestamp(datestr)
{
var new_str = datestr.replace(/:/g,"-");
new_str = new_str.replace(/ /g,"-");
var arr = new_str.split("-");
var datum = new Date(Date.UTC(arr[0],arr[1]-1,arr[2],arr[3]-8,arr[4],arr[5]));
return (datum.getTime()/1000); //为PHP所用
}
//UNIX时间戳转换为字符串
function timestamptostr(timestamp) {
d = new Date(timestamp.getTime());
var jstimestamp = (d.getFullYear())+"-"+(d.getMonth()+1)+"-"+(d.getDate())+" "+(d.getHours())+":"+(d.getMinutes())+":"+(d.getSeconds());
return jstimestamp;
}
javascript timestamp 和PHP 时间戳 差 8个小时
strtotimestamp("2010-01-01 08:00:00"); ......
//转换为UNIX时间戳
function strtotimestamp(datestr)
{
var new_str = datestr.replace(/:/g,"-");
new_str = new_str.replace(/ /g,"-");
var arr = new_str.split("-");
var datum = new Date(Date.UTC(arr[0],arr[1]-1,arr[2],arr[3]-8,arr[4],arr[5]));
return (datum.getTime()/1000); //为PHP所用
}
//UNIX时间戳转换为字符串
function timestamptostr(timestamp) {
d = new Date(timestamp.getTime());
var jstimestamp = (d.getFullYear())+"-"+(d.getMonth()+1)+"-"+(d.getDate())+" "+(d.getHours())+":"+(d.getMinutes())+":"+(d.getSeconds());
return jstimestamp;
}
javascript timestamp 和PHP 时间戳 差 8个小时
strtotimestamp("2010-01-01 08:00:00"); ......
需要在页面中嵌入播放器,来播放录音文件,录音文件时从FTP服务器上得到,公司写了个ocx控件,可以从ftp上下载并且可以进行格式的转换----转为wav格式。在具体开发中,出现的问题是,调用该ocx控件不成功,原因可能是:
1. ocx控件调用的方法参数有误,导致方法调用不成功;
2. 本地注册ocx控件有误;
3. jsp页面语法错误,导致参数有误;
这种情况下,调试起来非常困难,我们需要一个个的排除错误,所以我们考虑使用单独测试ocx的方式,排除在jsp环境下进行调用ocx控件的方式;
----------使用VB的开发环境来调用ocx控件,或者使用Execel来调用一段VBScript,该脚本直接调用ocx控件,我们使用VB6.0开发环境;
代码如下:
Private Sub Command1_Click()
Set softRecord = CreateObject("HOLLYCRMRECORD.HollycrmRecordCtrl.1")
If softRecord Is Nothing Then
MsgBox "create HOLLYCRMRECORDLib.HollycrmRecord failed"
End If
'softRecord.AboutBox
'o.playRecord "C:\WINDOWS\Media\chimes.wav"
softRecord.szFtpIP = "10.235.4.14"
softRecord.nFtpPort = "21"
softRecord.szFtpUser = "icd"
softRecord. ......
function editFormSubmit() {
var dataForm = Ext.getDom("dataForm");
var conn = new Ext.data.Connection({url:"edit.action"});
conn.request({
params:{
selectId:Ext.getDom("selectId").value,
selectSwyg:Ext.getDom("selectSwyg").value,
selectJdyg:Ext.getDom("selectJdyg").value,
selectJdwg:Ext.getDom("selectJdwg").value,
// selectPowerFactor:Ext.getDom("selectPowerFactor").value,
selectAgckzz:Ext.getDom("selectAgckzz").value,
selectAgckgzt:Ext.getDom("kgztCombo").value,
selectAgcStatus:Ext.getDom("statusCombo").value
},
success:function () ......
1、通过<s:form action="跳转页面">提交值,但是在<s:form>标签中的action后面至多只能跟一个参数,并且还会报警告,所以如果想传递参数可以用<s:hidden name="" values="username"></s:hidden>来传值,但是正规的写法需要配合<s:set>标签来用 如:
<s:set name="temp" value="动态值"></s:set>或者<s:set name="temp">静态值(相当于一个字符串)</s:temp>
<s:hidden name="username" value="%{temp}"></s:hidden>
注意:如果想在value属性中写静态值需要如下写法:<s:set name="temp" value="%{ ' 静态值 ' }"></s:set> 里面的单引号不可忽略。
2、通过<s:a href="地址?parame1=***¶me2=***¶me3=***">文字说明</s:a>
或者配合<s:url>来使用 如下:
<s:url action="Login" id="Logincd">
<s:param name="year">2009</s:param>
<s:param name="month">12</s:param>
<s:param name="day">09</s:param>
< ......