This error message is being presented, any suggestions?
Allowed memory size of 33554432 bytes exhausted (tried to allocate 43148176 bytes) in php
At last I found the answer:
Just add this line before the line where you get error in your php file
ini_set('memory_limit', '-1');
It will take unlimited memory usage of server, it's working fine.
Consider '44M'
instead of '-1'
for safe memory usage.
I had the same issue which running php in command line. Recently, I had changes the php.ini file and did a mistake while changing the php.ini
This is for php7.0
path to php.ini where I made mistake:
/etc/php/7.0/cli/php.ini
I had set memory_limit = 256
(which means 256 bytes
)
instead of memory_limit = 256M
(which means 256 Mega bytes
).
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 128M
Once I corrected it, my process started running fine.
if you are using laravel then use this ways
public function getClientsListApi(Request $request){
print_r($request->all()); //for all request
print_r($request->name); //for all name
}
instead of
public function getClientsListApi(Request $request){
print_r($request); // it show error as above mention
}
We had a similar situation and we tried out given at the top of the answers ini_set('memory_limit', '-1'); and everything worked fine, compressed images files greater than 1MB to KBs.
Your script is using too much memory. This can often happen in PHP if you have a loop that has run out of control and you are creating objects or adding to arrays on each pass of the loop.
Check for infinite loops.
If that isn't the problem, try and help out PHP by destroying objects that you are finished with by setting them to null. eg. $OldVar = null;
Check the code where the error actually happens as well. Would you expect that line to be allocating a massive amount of memory? If not, try and figure out what has gone wrong...
Doing :
ini_set('memory_limit', '-1');
is never good. If you want to read a very large file, it is a best practise to copy it bit by bit. Try the following code for best practise.
$path = 'path_to_file_.txt';
$file = fopen($path, 'r');
$len = 1024; // 1MB is reasonable for me. You can choose anything though, but do not make it too big
$output = fread( $file, $len );
while (!feof($file)) {
$output .= fread( $file, $len );
}
fclose($file);
echo 'Output is: ' . $output;