Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

Troubleshooting
Research
Professional Opinions
Ask a Question
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

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
Unix OSPerlPHP
8 Comments1 Solution3382 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);
?>
ASKER CERTIFIED SOLUTION
Avatar of duncanb7
duncanb7

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

Commented:
This problem has been solved!
Unlock 1 Answer and 8 Comments.
See Answers