phpExcel匯出excel的兩個問題
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
------解決方案--------------------
第二個問題: 記憶體超出
解決辦法一:
可以通過以下兩個方法修改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 );