PHP スクリプト (PHPEXCEL ライブラリhttp://phpexcel.codeplex.com/releases/view/107442を使用) を使用して 1,00,000 を超える XLS 行を処理し、MYSQL に挿入しようとしていますが、毎回タイムアウトが発生します。そのため、メモリ制限、実行制限、投稿サイズ制限を変更しました
set_time_limit(1800);
ini_set('memory_limit','-1');
ini_set('upload_max_filesize', '512M');
ini_set('post_max_size','250M');
タイムアウトの問題は解決されましたが、PHPEXCEL ライブラリを使用した EXCEL ファイルのロード中にサーバーがリセットされます。
PHPExcel_Cell::setValueBinder( new PHPExcel_Cell_AdvancedValueBinder() );
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objReader->setLoadSheetsOnly($sheetname);
$objPHPExcel = $objReader->load($inputFileName);
ここでサーバーをリセットしています。
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->setTitle("Office 2007 XLSX Document")
->setSubject("Office 2007 XLSX Document")
->setDescription(" Document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")->setCategory("php result file");
$this->dump($objPHPExcel);
// to iterate sheets
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet)
// to iterate rows
foreach ($worksheet->getRowIterator() as $row)
{
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
// to iterate cells
foreach ($cellIterator as $cell => $val) {
残念ながら、php で一括データ解析を処理するためのスクリプトやチュートリアルはありませんでした。
助けてください