首页 > 编程技术 > php

Fatal error: Out of memory (allocated 786432)提示解决办法

发布时间:2016-11-25 17:38

今天在运行phpmyadmin时页面突然出现了Fatal error: Out of memory (allocated 786432)提示,看英文的意思是说超过了指定内存大小了,下面我来介绍解决办法

错误提示:

Fatal error: Out of memory (allocated 786432) (tried to allocate 393216 bytes) in E:xxxxlibrariescommon.lib.php on line 3135

解决办法

一,在你程序页面加入

 代码如下 复制代码
ini_set('memory_limit',"256M")

即可。


二,在php.ini中修改

打开php.ini 修改

 代码如下 复制代码

memory_limit = 1024M

的这行

依照服务器配置进行调整配置的内存使用大小修改后重启iis/apache

昨天在使用cookie时页面报错:php Cannot modify header information-headers already sent by了,下面我来总结关于报错的解决办法。

代码

 代码如下 复制代码
<?php
ob_start();
setcookie("username","宋岩宾",time()+3600);
echo "the username is:".$HTTP_COOKIE_VARS["username"]."n";
echo "the username is:".$_COOKIE["username"]."n";
print_r($_COOKIE);
?>

Warning: Cannot modify header information - headers already sent by出错的原因

我在php程序的头部加了,

header("cache-control:no-cache,must-revalidate");

原因分析

在PHP里Cookie的使用是有一些限制的。
1、使用setcookie必须在<html>标签之前
2、使用setcookie之前,不可以使用echo输入内容
3、直到网页被加载完后,cookie才会出现
4、setcookie必须放到任何资料输出浏览器前,才送出
.....
由于上面的限制,在使用setcookie()函数时,学会遇到 "Undefined index"、"Cannot modify header information - headers already sent by"…等问题,解决办法是在输出内容之前,产生cookie

解决办法

1在页面顶部的php标签中加入ob_start();

2在返回的信息下面加入ob_end_flush();

这样就可以屏蔽错误信息的现实了


但有的朋友说上面办法不行,后来我后来打开 php.ini 然后把 output_buffering 设为 on 。重起appache,OK。看来这才是解决办法。


另外有朋友说是编码问题,只要转换文档有uft-8就可以解决了,这里就不介绍了。

使用php header实现文件下载时,在IE6下总是提示不能下载,谷歌浏览器正常, 因此应该是IE的问题,IE下有个bug,微软官网有说明。错误消息:“Internet Explorer cannot download a file”(Internet Explorer 不能下载文件),有个办法可以很好的解决,

看代码好了:

下面整理了一个函数

 代码如下 复制代码

if(strstr($_SERVER["HTTP_USER_AGENT"],"MSIE")==false) {
 header("Cache-Control: no-cache");
 header("Pragma: no-cache");
}

header('Cache-Control: public, must-revalidate, max-age=0');
header('Accept-Ranges: bytes');
header("Content-Type: application/force-download");
header("Content-Type: application/download");
header("Content-Type: application/octet-stream");
if(!empty($content_type)){
 header("Content-Type: ".$content_type);
}
header("Content-Transfer-Encoding: binary");
header('Content-Disposition:attachment;filename="'.rawurlencode($filename).'"');

我要利用curl函数进行数据采集时发现提示Call to undefined function curl_init错误了,后来从官网了解到因为curl默认不是php开启的函数,我们需要手工打开哦,下面我来给大家介绍开启curl函数。

 代码如下 复制代码

$ch = curl_init(); //初始化curl
curl_setopt($ch, CURLOPT_URL, $url);//设置链接
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设置是否返回信息
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//设置HTTP头
curl_setopt($ch, CURLOPT_POST, 1);//设置为POST方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_data);//POST数据
$response = curl_exec($ch);//接收返回信息
if(curl_errno($ch)){//出错则显示错误信息
 print curl_error($ch);
}
curl_close($ch); //关闭curl链接
echo $response;//显示返回信息

结果出现

Call to undefined function curl_init

解决方法如下:

1.打开php.ini,开启extension=php_curl.dll

2.检查php.ini的extension_dir值是哪个目录,检查有无php_curl.dll,没有的请下载php_curl.dll,再把php目录中的libeay32.dll,ssleay32.dll拷到c:windowssystem32里面

修改之后还有问题啊

在httpd.conf文件中加上:

LoadFile 动态链接库的完整路径

比如,此处php需要扩展curl,因此解决方法就是在httpd.conf文件中加上:

LoadFile d:/php/libeay32.dll
LoadFile d:/php/ssleay32.dll

这样就解决了

今天在安装一台新服务器时在服务器中配置phpMyAdmin ,但打开时phpmyadmin错误 无法载入 mysql 扩展,请检查 PHP 配置,下面我来给大家介绍解决办法。

无法载入 mysql 扩展,<br />请检查 PHP 配置 - 文档

解决办法非常简单在你php.ini中找到你如下代码

 代码如下 复制代码

extension_dir = "D:/xxx/php/ext"

D:xxxphpext就是你php安装目录了 再重启apache


有的朋友是说把php.ini中的libmysql.dll去掉即可,但我深入是失败的。

 

标签:[!--infotagslink--]

您可能感兴趣的文章: