Re: Too many open files

From: Date: Fri, 10 Aug 2012 14:24:07 +0000
Subject: Re: Too many open files
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-318667@lists.php.net to get a copy of this message
On 12-08-10 02:49 AM, Matijn Woudt wrote:
On Fri, Aug 10, 2012 at 5:36 AM, Jim Lucas <lists@cmsws.com> wrote:
On 8/9/2012 5:01 PM, Al wrote:
Getting "Too many open files" error when processing an email batch process. I've looked extensively and can't find more than about 100 files that could be open. All my fetching is with get_file_contents();
Why not use fopen() and other related functions to open/grap/close your batch of files? You could replace a call like this: $data = file_get_contents($filename); with this: if ( $fh = fopen($filename, 'r') ) { $data = fread($fh, filesize($filename)); fclose($fh); } This should take care of your issue. Jim Lucas
Why on earth would you want to reinvent the wheel? There's no point in saying that fopen/fread/fclose is better, in fact, let me quote from the manual page of file_get_contents: "file_get_contents() is the preferred way to read the contents of a file into a string. It will use memory mapping techniques if supported by your OS to enhance performance." If your solution would fix the problem (I doubt, but ok), then you should report a bug to the PHP devs that file_get_contents is broken.
It wouldn't fix the problem. Performing fopen/fread/fclose in PHP is slower than the same process implemented in C in the PHP engine. Thus the file will spend more time in the open state thus exacerbating the problem. Cheers, Rob. -- E-Mail Disclaimer: Information contained in this message and any attached documents is considered confidential and legally protected. This message is intended solely for the addressee(s). Disclosure, copying, and distribution are prohibited unless authorized.

« previous php.general (#318667) next »