ファイルサイズが673Kと131Kのファイルをそれぞれ解析する2つの関数があります。彼らは名前だけで同じコードを持っています。それはファイルExcelからのデータと、それは返す他の関数read 一つの機能:私は他人のファイルを持っているPHPでログファイルを作成する方法
Fatal Error: Allowed Memory Size of 134217728 Bytes Exhausted (Tried to allow 72 bytes)
はそのサイズをExcelのより、このものより大きく、その解析関数適しています。
ログファイルを作成して、システム内で行うすべての操作を登録したいのですが、どうすればいいのか分かりません。一方私は@Lawrence CheroneのためにStackOverflowで、この解決策が見つかりました: enter link description here
をしかし、問題は、私はlogfile
を行います初めてです、私はそれを作成する方法がわかりませんか?私は新しいファイルを作成し、それを私のプロジェクトに入れますか?どのように私はそれをexcute、私は私の機能のエラーの理由を見ることができますか?または@Lawrence Cheroneが提案した解決策のようなエラーが発生した場合、このファイルを関数に挿入しますか? このソリューションは正常に動作しているようで、問題は解決されています。私が代わりに「エコー」の行を入れ
public function parseEquipment($filePath = null) {
set_time_limit(0);
$listEquipement = [];
$count = 0;
$chunkSize = 1024;
$objReader = PHPExcel_IOFactory::createReader(PHPExcel_IOFactory::identify($filePath));
$spreadsheetInfo = $objReader->listWorksheetInfo($filePath);
$chunkFilter = new \Floose\Parse\ChunkReadFilter();
$objReader->setReadFilter($chunkFilter);
$objReader->setReadDataOnly(true);
$chunkFilter->setRows(0, 1);
$objPHPExcel = $objReader->load($filePath);
$totalRows = $spreadsheetInfo[0]['totalRows'];
for ($startRow = 1; $startRow <= $totalRows; $startRow += $chunkSize) {
$chunkFilter->setRows($startRow, $chunkSize);
$objPHPExcel = $objReader->load($filePath);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null, null, true, false);
$startIndex = ($startRow == 1) ? $startRow : $startRow - 1;
if (!empty($sheetData) && $startRow < $totalRows) {
$dataToAnalyse = array_slice($sheetData, $startIndex, $chunkSize);
//echo 'test1';
if($dataToAnalyse[1][0]==NULL){
//echo 'test2';
break;
}
//echo 'test3';
//var_dump($sheetData);
for ($i = 0; $i < $chunkSize; $i++) {
if ($dataToAnalyse[$i]['0'] != NULL) {
//echo 'OK';
$listEquipement[] = new Article($dataToAnalyse[$i]['3'], $dataToAnalyse[$i]['4'], $dataToAnalyse[$i]['2']);
// echo 'test4';
$count++;
}
}
}
$objPHPExcel->disconnectWorksheets();
unset($objPHPExcel, $sheetData);
}
//var_dump(array_slice($sheetData, $startIndex, $chunkSize););
return $listEquipement;
}
:私はそれをデバッグするには、このログファイルを作成する方法私の機能の私の小さなコードが これ以下である、あなたは私を導くことができますか? 「/var/tmp/custom-errors.log」はログファイルのアクセスパスですか? – Nazly
ファイルに何かを書きたい場合は、この行を使用できます –