From 7e05f533431367e8f724e3d1372a16de547a51c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Voz=C3=A1r?= Date: Wed, 29 Mar 2017 13:15:32 +0200 Subject: [PATCH] Parse integer value from php.ini memor_limit This is compatibility fix for PHP7, when notice "A non well formed numeric value encountered" is thrown after attempt to multiply number string for example "512M" with number. PHP <7 silently truncated any non number character before multiplication was done. --- Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php b/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php index a5a9b0a8b..e7242ffc9 100644 --- a/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php +++ b/Classes/PHPExcel/Shared/PCLZip/pclzip.lib.php @@ -1729,17 +1729,17 @@ public function privOptionDefaultThreshold(&$p_options) if ($last == 'g') { //$v_memory_limit = $v_memory_limit*1024*1024*1024; - $v_memory_limit = $v_memory_limit*1073741824; + $v_memory_limit = intval($v_memory_limit)*1073741824; } if ($last == 'm') { //$v_memory_limit = $v_memory_limit*1024*1024; - $v_memory_limit = $v_memory_limit*1048576; + $v_memory_limit = intval($v_memory_limit)*1048576; } if ($last == 'k') { - $v_memory_limit = $v_memory_limit*1024; + $v_memory_limit = intval($v_memory_limit)*1024; } - $p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] = floor($v_memory_limit*PCLZIP_TEMPORARY_FILE_RATIO); + $p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] = floor(intval($v_memory_limit)*PCLZIP_TEMPORARY_FILE_RATIO); // ----- Sanity check : No threshold if value lower than 1M if ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] < 1048576) {