troubleshooting Question

Out of memory at file_put_contents() NOT related memory_limt, execution time, input_time in php

Avatar of duncanb7
duncanb7 asked on
PHPUnix OSPerl
8 Comments4 Solutions3382 ViewsLast Modified:
Fatal error on file_put_contents() NOT  related memory_limt, execution time, input_time in phpQuestion: Dear Experts,

I get one php script, csvextract.php,  as attached in code area, and I found the error message
"Fatal Error: Out of memory(allocated 3123000)(tried to allocate 71 bytes) in /home/.../csvextract.php line 17"
at the line 17 is exactly at file_put contents() function location.
And I already check my php.ini file and .htaccess file, those are already setting correct memory_limit=128M,
max_execution_time=0, max_input_time=-1, so I believe the error message is NOT related to
memory_limit, max_input_time, max_exexcution_time.

SO what other factors or setting in php.ini will affect the file_put_contents() function ? Is the fatal error
related to magic_quotes_sysbase() and  magic_quotes_runtime() ? I got confused about how to use
magic_quotes_sysbase!

When I cut  down the file of "data.csv" file size by half or number of row in the file by half,
it is passed and no any error message.So I suspect $csv variable  to store the array from file() can NOT
be too much size. Do you think so.? Is there any setting in php.ini related to parsing variable size like $csv as follows

Be reminded my fatal error message is out of memory(allocated 3123000)(tried) and NOT  "Allowed memory size 100k exhausted"  
If memory_limit is not set correctly, it will report  error like " Allowed memory size 100k exhausted" for example only

Please advise

Duncan


<?php
ini_set('max_execution_time', 0);
ini_set('max_input_time', -1);
ini_set('memory_limit', '128M');
ini_set('post_max_size', "128M");
ini_set('upload_max_filesize', "128M");
$csv=file("data.csv");
$e=count($csv);

$line=array();
for ($a=$e-1; $a > 0; --$a) {
$line= explode(",",$csv[$a]);
$line[4]=$line[4]+100;
$line[36]="a";
$line[37]="aa";
$line[38]="bb";
$line[39]="cc";
$line[40]="\n";
$csv= implode(",",$line);

}
file_put_contents("data.csv",$csv);
?>

Open in new window

ASKER CERTIFIED SOLUTION
duncanb7

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 4 Answers and 8 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 4 Answers and 8 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros