Notice: iconv_strlen() [function.iconv-strlen]: Detected an illegal character in input string in E:\test\PHPnow-1.5.6\vhosts\127.0.0.18\inc\PHPExcel\PHPExcel\Shared\String.php on line 554
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 16 bytes) in E:\test\PHPnow-1.5.6\vhosts\127.0.0.18\inc\PHPExcel\PHPExcel\Cell.php on line 840
本地调试的时候出现的,请问该怎么解决呢? phpexcel默认导出的编码是什么呢?数据库的编码是GBK的。
源代码有500多行(菜鸟PHPER)就不贴了。
针对第二个问题在网上找了下,加了这两句还是没用
set_time_limit(900);
//设置最大内存为128M
@ini_set('memory_limit','128M');
在这里先谢谢大家了
回复讨论(解决方案)
??1:
Mb_convert_encoding($html,'UTF8','BIG5'); //?big5??utf8
或iconv(gb2312,UTF-8,$要转的string);
??2:
你的?存不足,需要修改PHP.ini中允?使用的?存量,改完重?apache
??1:
Mb_convert_encoding($html,'UTF8','BIG5'); //?big5??utf8
或iconv(gb2312,UTF-8,$要转的string);
??2:
你的?存不足,需要修改PHP.ini中允?使用的?存量,改完重?apache
你好,第一个问题解决了
但第二问题依然还在,我在测试的时候用了@ini_set('memory_limit', '-1');还是出现
Fatal error: Out of memory (allocated 1602748416) (tried to allocate 134217728 bytes) in E:\test\PHPnow-1.5.6\vhosts\127.0.0.18\inc\PHPExcel\PHPExcel\Cell.php on line 839
但是我本地的内存已经用满了,虾米那是我的代码
<?phpsession_start();include("inc/func.php");$conn=mysql_connect('localhost','root','123456');mysql_select_db('gzlgl',$conn);mysql_query("set names UTF8");//导入类库require_once 'inc/PHPExcel/PHPExcel.php'; require_once 'inc/PHPExcel/PHPExcel/IOFactory.php';//require_once '../inc/PHPExcel/PHPExcel/Reader/Excel5.php';require_once 'inc/PHPExcel/PHPExcel/Writer/Excel2007.php';//设置最大执行时间set_time_limit(0);//设置最大内存为128M@ini_set('memory_limit', '-1'); /*初始化*/$arr_sem=array();$sql="select * from semester";//读入学期周数$record=mysql_query($sql,$conn) or die(mysql_error());$row=mysql_fetch_row($record);do{ $arr_sem["$row[0]"]=$row[1];//arr_sem['学期']=学期周数}while($row=mysql_fetch_row($record));$arr_theory=array();//理论课工作量数组//$arr_total_theory=array();//理论课工作量数组$arr_lab=array();//实验课工作量数组//$arr_total_lab=array();//实验课工作量数组$arr_add=array();//附加工作量数组//$arr_total_add=array();//附加工作量数组$arr_total=array();//全部工作量数组//导出为excel,考虑到兼容问题,导出为xls文件// 创建一个处理对象实例$objExcel = new PHPExcel();// 创建文件格式写入对象实例//$objWriter = new PHPExcel_Writer_Excel5($objExcel);$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用于 2007 格式$objWriter->setOffice2003Compatibility(true);//设置文档基本属性$objProps = $objExcel->getProperties();$objProps->setCreator("Tao Hu");$objProps->setLastModifiedBy("ddd");$objProps->setTitle(iconv('gbk', 'utf-8', '所选时间内的工作量详情'));$objProps->setSubject("dd");$objProps->setDescription("ss");$objProps->setKeywords("s");$objProps->setCategory("ss");//设置当前的sheet索引,用于后续的内容操作。//一般只有在使用多个sheet的时候才需要显示调用。//缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0$objExcel->setActiveSheetIndex(0);$objActSheet = $objExcel->getActiveSheet();//设置当前活动sheet的名称$objActSheet->setTitle('ddd');$cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp; $cacheSettings = array( ' memoryCacheSize ' => '8MB' ); PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings); //合并单元格$i=1;//行号$j='A';//列号 //合并单元格 $objActSheet->mergeCells("'A'.$i.':L'.$i"); $objActSheet->setCellValue("'A'.$i", '理论课工作量'); $i++; //各项标题 $objActSheet->setCellValue("'A'.$i", '工作量编号'); $objActSheet->setCellValue("'B'.$i", '学期'); $objActSheet->setCellValue("'C'.$i", '课程名称'); $objActSheet->setCellValue("'D'.$i", '教师名称'); $objActSheet->setCellValue("'E'.$i", 'K1'); $objActSheet->setCellValue("'F'.$i", 'K2'); $objActSheet->setCellValue("'G'.$i", 'K3'); $objActSheet->setCellValue("'H'.$i", '学生数'); $objActSheet->setCellValue("'I'.$i", 'we'); $objActSheet->setCellValue("'J'.$i", 'we'); $objActSheet->setCellValue("'K'.$i", 'fds'); $objActSheet->setCellValue("'L'.$i", 'fwe'); $i++; $objActSheet->setCellValue("'A'.$i", "dfd"); $objActSheet->setCellValue("'B'.$i", "dfd"); $objActSheet->setCellValue("'C'.$i", "dfd"); $objActSheet->setCellValue("'D'.$i", "dfd"); $objActSheet->setCellValue("'E'.$i", "dfd"); $objActSheet->setCellValue("'F'.$i", "dfd"); $objActSheet->setCellValue("'G'.$i", "dfd"); $objActSheet->setCellValue("'H'.$i", "dfd"); $objActSheet->setCellValue("'I'.$i", "dfd"); $objActSheet->setCellValue("'J'.$i", "dfd"); $objActSheet->setCellValue("'K'.$i", $has_exam); $objActSheet->setCellValue("'L'.$i", $sum_thoery); $i++;//输出内容$outputFileName = "output.xls";$objWriter->save($outputFileName); ?>
第二个问题: 内存超出
解决办法一:
可以通过以下两个方法修改php运行时的内存限制.
在php.ini文件里设置memory_limit = 12M(推荐使用,如果拥有这个权限的话)
?在sites/default/settings.php文件里设置ini_set('memory_limit','12M');
解决办法二:
// 设置缓存方式,减少对内存的占用
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheSettings = array (
'cacheTime' => 300
);
PHPExcel_Settings::setCacheStorageMethod ( $cacheMethod, $cacheSettings );
第二个问题: 内存超出
解决办法一:
可以通过以下两个方法修改php运行时的内存限制.
在php.ini文件里设置memory_limit = 12M(推荐使用,如果拥有这个权限的话)
?在sites/default/settings.php文件里设置ini_set('memory_limit','12M');
解决办法二:
// 设置缓存方式,减少对内存的……
已经设置为1024M了还是提示这个错误
而且使用的时候电脑内存占用超高,直接卡机
很正常,尝试输出页面占用内存情况,你就会懂得 echo memory_get_usage ();
在我本机,load一个5MB左右的excel文件,消耗了188 MB内容,而且页面用了二十秒。
http://bbs.csdn.net/topics/390312724
引用 3 楼 wodecuoshi230 的回复:第二个问题: 内存超出
解决办法一:
可以通过以下两个方法修改php运行时的内存限制.
在php.ini文件里设置memory_limit = 12M(推荐使用,如果拥有这个权限的话)
?在sites/default/settings.php文件里设置ini_set('memory_limit','12M');
…… 更改php.ini内存限制之后,要重启apache
引用 4 楼 hu5487 的回复:引用 3 楼 wodecuoshi230 的回复:第二个问题: 内存超出
解决办法一:
可以通过以下两个方法修改php运行时的内存限制.
在php.ini文件里设置memory_limit = 12M(推荐使用,如果拥有这个权限的话)
?在sites/default/settings.php文件里设置ini_set('memo……
都重启了
加上之后出现
589704
Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 35 bytes) in E:\test\PHPnow-1.5.6\vhosts\127.0.0.18\inc\PHPExcel\PHPExcel\Cell.php on line 839
引用 6 楼 wodecuoshi230 的回复:引用 4 楼 hu5487 的回复:引用 3 楼 wodecuoshi230 的回复:第二个问题: 内存超出
解决办法一:
可以通过以下两个方法修改php运行时的内存限制.
在php.ini文件里设置memory_limit = 12M(推荐使用,如果拥有这个权限的话)
?在sites/default/setti…… ?是不?用,??加大
好像里面有一个设置编码的吧,我用的时候就是把编码设置成utf-8就可以了
phpExcel大数据量情况下内存溢出解决
引用 7 楼 hu5487 的回复:引用 6 楼 wodecuoshi230 的回复:引用 4 楼 hu5487 的回复:引用 3 楼 wodecuoshi230 的回复:第二个问题: 内存超出
解决办法一:
可以通过以下两个方法修改php运行时的内存限制.
在php.ini文件里设置memory_limit = 12M(推荐使用,如果拥有这个权限的话)
?在s……
加到2G还是不行
有没有轻量级的呢? 我需要3个循环的 这才一个循环就这样了 到时候没那么给力的机器装。。。设置了缓存也不行。。。而且速度太慢了
phpExcel大数据量情况下内存溢出解决
使用了方法依然解决不了
引用 8 楼 sibang 的回复:引用 7 楼 hu5487 的回复:引用 6 楼 wodecuoshi230 的回复:引用 4 楼 hu5487 的回复:引用 3 楼 wodecuoshi230 的回复:第二个问题: 内存超出
解决办法一:
可以通过以下两个方法修改php运行时的内存限制.
在php.ini文件里设置memory_limit = 12M(推荐使…… 把你的php代?循?方式修改成url循环方式,示例:
$i=(!isset($_GET['i'])) ? 0 : $_GET['i'];
....
select * from 表 where id>{$i} order by id asc limit 0,1
....
Header('Location:?i='.$i);
引用 11 楼 hu5487 的回复:引用 8 楼 sibang 的回复:引用 7 楼 hu5487 的回复:引用 6 楼 wodecuoshi230 的回复:引用 4 楼 hu5487 的回复:引用 3 楼 wodecuoshi230 的回复:第二个问题: 内存超出
解决办法一:
可以通过以下两个方法修改php运行时的内存限制.
在php.ini文件里设置mem……
研究了半天问题终于解决了,是我的代码的问题,有几个格式用错了,比如 $objActSheet->mergeCells("'A'.$i.':L'.$i");错了导致根本过不去
引用 13 楼 sibang 的回复:引用 11 楼 hu5487 的回复:引用 8 楼 sibang 的回复:引用 7 楼 hu5487 的回复:引用 6 楼 wodecuoshi230 的回复:引用 4 楼 hu5487 的回复:引用 3 楼 wodecuoshi230 的回复:第二个问题: 内存超出
解决办法一:
可以通过以下两个方法修改php运行时的内存限制…… 恭喜,???
引用 11 楼 hu5487 的回复:引用 8 楼 sibang 的回复:引用 7 楼 hu5487 的回复:引用 6 楼 wodecuoshi230 的回复:引用 4 楼 hu5487 的回复:引用 3 楼 wodecuoshi230 的回复:第二个问题: 内存超出
解决办法一:
可以通过以下两个方法修改php运行时的内存限制.
在php.ini文件里设置mem……
研究了半天问题终于解决了,是我的代码的问题,有几个格式用错了,比如 $objActSheet->mergeCells("'A'.$i.':L'.$i");错了导致根本过不去
弱弱的问一句,正确的表示方法是?

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

PHP不是在消亡,而是在不断适应和进化。1)PHP从1994年起经历多次版本迭代,适应新技术趋势。2)目前广泛应用于电子商务、内容管理系统等领域。3)PHP8引入JIT编译器等功能,提升性能和现代化。4)使用OPcache和遵循PSR-12标准可优化性能和代码质量。

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。

在PHP中,trait适用于需要方法复用但不适合使用继承的情况。1)trait允许在类中复用方法,避免多重继承复杂性。2)使用trait时需注意方法冲突,可通过insteadof和as关键字解决。3)应避免过度使用trait,保持其单一职责,以优化性能和提高代码可维护性。

依赖注入容器(DIC)是一种管理和提供对象依赖关系的工具,用于PHP项目中。DIC的主要好处包括:1.解耦,使组件独立,代码易维护和测试;2.灵活性,易替换或修改依赖关系;3.可测试性,方便注入mock对象进行单元测试。

SplFixedArray在PHP中是一种固定大小的数组,适用于需要高性能和低内存使用量的场景。1)它在创建时需指定大小,避免动态调整带来的开销。2)基于C语言数组,直接操作内存,访问速度快。3)适合大规模数据处理和内存敏感环境,但需谨慎使用,因其大小固定。

PHP通过$\_FILES变量处理文件上传,确保安全性的方法包括:1.检查上传错误,2.验证文件类型和大小,3.防止文件覆盖,4.移动文件到永久存储位置。

JavaScript中处理空值可以使用NullCoalescingOperator(??)和NullCoalescingAssignmentOperator(??=)。1.??返回第一个非null或非undefined的操作数。2.??=将变量赋值为右操作数的值,但前提是该变量为null或undefined。这些操作符简化了代码逻辑,提高了可读性和性能。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

记事本++7.3.1
好用且免费的代码编辑器

Dreamweaver CS6
视觉化网页开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具