Fatal Error: Allowed memory size of 123456789 bytes exhausted
错误提示
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 3214636 bytes) in E:VertrigoServwwwinstall.php on line 488
我们直接创建一个phpinfo.php文件,写入如下代码
<?php phpinfo(); ?>
然后就可以查看到你的内存
php内存分配不足:
1、修改php.ini(推荐)
代码如下 | 复制代码 |
memory_limit = 12M (改大点) |
2、在程序里面添加如下语句
运行时修改php的内存设置
在你的php代码中增加以下命令行即可。
代码如下 | 复制代码 |
<?php ini_set('memory_limit','128M'); ?>
|
3、在根目录建立.htaccess文件,添加如下内容
代码如下 | 复制代码 |
php_value max_execution_time 1200 |
memory_limit应该设为多少?
这个完全依赖于你的应用的要求。比如Wordpress,运行起核心代码需要32MB。Drupal 6则要求这个值最小为16MB,并推荐设置为32MB。如果你又安装不少的插件(plugins),尤其是那些要进行图像处理的模块,那么你可能需要 128MB或更高的内存。
在php中urlencode()函数函数是把中文转换成字符串编码,这样就不会导致中文url在浏览器中打开乱码或出错的问题了,下面我来给大家介绍在使用 urlencode()编码是一些具体细节。urlencode
(PHP 4, PHP 5)
urlencode — 编码 URL 字符串
Report a bug 说明
string urlencode ( string $str )
此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页。
Report a bug 参数
str
要编码的字符串。
Report a bug 返回值
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。
么是URLEncode:
本工具分别实现两种方式的Encode与Decode。
中文 -> GB2312的Encode -> %D6%D0%CE%C4
中文 -> UTF-8的Encode -> %E4%B8%AD%E6%96%87
Html中的URLEncode:
编码为GB2312的html文件中,
/中文.rar -> 浏览器自动转换为 -> /%D6%D0%CE%C4.rar
注意:Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以,我试过了.我认为这应该算是Firefox一个bug.
编码为UTF-8的html文件中,
/中文.rar -> 浏览器自动转换为 -> /%E4%B8%AD%E6%96%87.rar
PHP中的URLEncode:
代码如下 | 复制代码 |
//GB2312的Encode |
除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。
urlencode和rawurlencode的区别:
urlencode 将空格则编码为加号(+)
rawurlencode 将空格则编码为加号(%20)
如果要使用UTF-8的Encode,有两种方法:
一、将文件存为UTF-8文件,直接使用urlencode、rawurlencode即可。
二、使用mb_convert_encoding函数。
代码如下 | 复制代码 |
$url = ‘/中文.rar’; |
实例:
代码如下 | 复制代码 |
function parseurl($url=”") |
JavaScript中的URLEncode:
代码如下 | 复制代码 |
%E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6%96%87-_.%20 |
encodeURI 不对下列字符进行编码:“:”、“/”、“;”、“?”、“@”等特殊字符。
代码如下 | 复制代码 |
/%E4%B8%AD%E6%96%87.rarhttp%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar |
Note:
注意:小心与 HTML 实体相匹配的变量。像 &、© 和 £ 都将被浏览器解析,并使用实际实体替代所期待的变量名。这是明显的混乱,W3C 已经告诫人们好几年了。参考地址:» http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2。
PHP 通过 arg_separator.ini 指令,支持将参数分割符变成 W3C 所建议的分号。不幸的是大多数用户代理并不发送分号分隔符格式的表单数据。较为简单的解决办法是使用 & 代替 & 作为分隔符。你不需要为此修改 PHP 的 arg_separator。让它仍为 &,而仅使用 htmlentities() 或 htmlspecialchars() 对你的 URL 进行编码。
Warning: strstr() [function.strstr]: Empty delimiter
非常奇怪,难道php函数strstr的某个参数出问题了?
于是写了个测试的例子
代码如下 | 复制代码 |
<?php $text=”asdfghjklqwertyuiopzxcvbnm”; //根据php错误提示Empty delimiter,判断应该不会是$text的值出问题,所以故意注释了key值 if(strstr($text, $key)){ ?> |
strstr()竟然不报错,于是想到$key值可能会是空串”",姑且一试。
果然strstr($text,”")时,提示出错Warning: strstr() [function.strstr]: Empty delimiter
今天在利用empty函数是出现Fatal error: Can’t use function return value in write context错误提示,觉得很怪, 这个函数我可是使用了N久了今天怎么回事,下面大家来看看我的分析过程。错误提示
Fatal error: Can’t use function return value in write context in empty.php on line 5
我代码是这样写的
代码如下 | 复制代码 |
$str=” “; |
然后出现了
Fatal error: Can’t use function return value in write context in empty.php on line 5
看不出原因就上了官网查看了一下手册。
bool empty ( mixed $var )
如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,”"、0、”0″、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。 除了当变量没有置值时不产生警告之外,empty() 是 (boolean) var 的反义词。
可见empty只能用来检查变量值,不能用来检查函数的返回值。正确用法应该是
代码如下 | 复制代码 |
$var =trim(” “); |
empty(trim($str)这种用法是错误的。
关闭PHP错误脚本提示是程序上线了必须做的一件事情,就是不管程序怎么报错我们都不能让错误日志在服务器上给大家看到,下面我来总结两种关闭PHP错误脚本提示的具体方法。最简单的办法就是直接在php程序代码中加入下面代码:
代码如下 | 复制代码 |
error_reporting(E_ALL^E_NOTICE^E_WARNING); |
可以关闭所有notice 和 warning 级别的错误。
把这个语句放在您脚本的功用包含文件中,通常为config.php 或者conn.php 中就可以控制输出了。
当然我也也可以在php.ini中进行设置了方法如下
打开PHP安装目录下的php.ini文件
找到display_errors = On 修改为 display_errors = off
注意:如果你已经把PHP.ini文件复制到windows目录下,那么必须同时把c:windows/php.ini里的display_errors = On 修改为display_errors = off
PHP .ini中display_errors = Off失效的解决
问题:
PHP 设置文件php .ini中明明已经设置display_errors = Off,但是在运行过程中,网页上还是会出现错误信息。
解决:
打开PHP安装目录下的php.ini文件
找到log_errors = off 修改为 log_errors = on
找到error_log = filename 修改为 error_log="D:PHPerrlogphp_error.log" (这里的目录和文件名D:PHPerrlogphp_error.log随便你取什么)
注意:如果你已经把PHP.ini文件复制到windows目录下,那么必须同时把c:windows/php.ini文件.
此外php_error.log至少要有USER的修改和写权限,否则无法输出错误日志.
经常见到error_reporting(7)直意为:设定错误讯息回报的等级。
value constant
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 E_STRICT
然而7=1+2+4
就是出错时显示1 E_ERROR 2 E_WARNING 4 E_PARSE
代码如下 | 复制代码 |
<?php //禁用错误报告 error_reporting(0); //报告运行时错误 error_reporting(E_ERROR | E_WARNING | E_PARSE); //报告所有错误 error_reporting(E_ALL); ?> |
相关文章
- memory_limit是php.ini中的一个比较重要的参数了,它可以限制你php进行最大使用内存的情况,如果小了会导致运行时提示Fatal Error: Allowed memory size of xxxxxx bytes...2016-11-25
Nginx反向代理proxy_cache_path directive is not allowed错误解决方法
这篇文章主要介绍了Nginx反向代理proxy_cache_path directive is not allowed错误解决方法,需要的朋友可以参考下...2016-01-27Fatal error: Out of memory (allocated 786432)提示解决办法
今天在运行phpmyadmin时页面突然出现了Fatal error: Out of memory (allocated 786432)提示,看英文的意思是说超过了指定内存大小了,下面我来介绍解决办法 错误提...2016-11-25解决php curl获取网页内容提示405 method not allowed状态码
在使用php curl获取网页内容有些网站提示405 method not allowed状态码了,这个问题我分析了出问题的网站是因为ipv6而导致了,所以我们只要简单的调整一下就可以解决这个...2016-11-25php错误Fatal error: Out of memory (allocated 262144)
昨天网站用着用着就提示了Fatal error: Out of memory (allocated 262144),后来百度搜索了一些解决方法,下面我分享给各位朋友。 从上面的Out of memory (allocate...2016-11-25Pytorch GPU显存充足却显示out of memory的解决方式
今天小编就为大家分享一篇Pytorch GPU显存充足却显示out of memory的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27Windows平台的 PHP 报错 Fatal error: Class COM not found in 的解决方法
这篇文章主要介绍了Windows平台的 PHP 报错 Fatal error: Class COM not found in 的解决方法,需要的朋友可以参考下...2016-01-27php Allowed memory size of 8388608 bytes exhausted (tried to allocate 46080 bytes) in....
今天在用一个php产品时出现了Allowed memory size of 8388608 bytes exhausted (tried to allocate 46080 bytes) in....提示信息,经过查核是因为此产品未考虑到用户内...2016-11-25- 今天我的新一台服务器安装了php环境但在在运行时提示Fatal Error: Allowed memory size of xxxxxx bytes exhausted了,是内存不足呀,下面我来介绍解决些问题的几种办法。...2016-11-25
Fatal error: Allowed memory size of 134217728 bytes exhauste
在运行dedecms是有些朋友会发现有些页面会提示Fatal error: Allowed memory size of 134217728 bytes exhauste错误了,下面我们一起来看看解决此问题办法。...2016-11-25Composer PHP Fatal error:Allowed memory size of
在使用composer update时遇到的,详细的错误消息Composer PHP Fatal error:Allowed memory size of 536870912 bytes exhausted了,下面来一起看问题解决办法 今天...2016-11-25SQL Server误设置max server memory的处理方法
这篇文章主要给大家介绍了关于SQL Server误设置max server memory的处理方法,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL Server具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧下...2020-07-11Fatal error: Allowed memory size of 33554432 bytes exhausted
今天换了一个服务器运行php久了就会发现Fatal error: Allowed memory size of 33554432 bytes exhausted提示了,下面我来给大家介绍此问题解决地。...2016-11-25fatal error LNK1104: 无法打开文件“libc.lib”的解决方法
本篇文章是对fatal error LNK1104: 无法打开文件“libc.lib”的解决方法进行了详细的分析介绍,需要的朋友参考下...2020-04-25php运行网站内存不足提示 Fatal error Allowed memory size
有些朋友新配置的环境或自己新写的程序运行时会碰到fatal error: Allowed memory size of 134217728 bytes exhausted错误了,这种问题一个是程序写得不好导致的,另一个...2016-11-25Fatal Error: Allowed memory size of 123456789 bytes exhausted
今天在运行dedecms时出现有些页面会提示Fatal Error: Allowed memory size of 123456789 bytes exhausted了,下面我来给大家介绍如何解决些问题。 错误提示 Fatal e...2016-11-25- memory_limit这个参数我想大家看英文就知道是最大内存的问题,默认的一般是128MB如果想更大我们就得自己动手处理了,下面来看几种解决方法。 了查看这个值,你须要建树...2016-11-25