From: Ashley Sheridan on 29 Jun 2010 16:39 On Tue, 2010-06-29 at 16:37 -0400, Andrew Ballard wrote: > On Tue, Jun 29, 2010 at 4:21 PM, Ashley Sheridan > <ash(a)ashleysheridan.co.uk> wrote: > > On Tue, 2010-06-29 at 17:02 -0300, Jo?o C?ndido de Souza Neto wrote: > > > >> The characters are stripped off of the end of the file after that point. > >> > >> -- > >> Joo Cndido de Souza Neto > >> > >> "Ashley Sheridan" <ash(a)ashleysheridan.co.uk> escreveu na mensagem > >> news:1277841481.2253.39.camel(a)localhost... > >> > On Tue, 2010-06-29 at 16:53 -0300, Jo?o C?ndido de Souza Neto wrote: > >> > > >> >> Ive got a file with only one line 21917 characters long but when I read > >> >> this file using $varData = file_get_contents("file.txt") it gets only > >> >> 21504 > >> >> characters. > >> >> > >> >> Anyone would know why does it happen? > >> >> > >> >> Thanks in advance. > >> >> > >> >> -- > >> >> Joo Cndido de Souza Neto > >> >> > >> >> > >> >> > >> > > >> > > >> > Are the characters stripped off of the end of the file after that point, > >> > or is the encoding not correctly determined and some characters are > >> > converted the wrong ones? > >> > > >> > Thanks, > >> > Ash > >> > http://www.ashleysheridan.co.uk > >> > > >> > > >> > > >> > >> > >> > > > > Have you looked at the memory settings in php.ini? > > > > Thanks, > > Ash > > http://www.ashleysheridan.co.uk > > > > > > > > I doubt that is the cause, at least not by itself. 21504 characters is > only 21K of data (could be more if the characters are multi-byte > encoded, but still less than 100K) , and the default memory limit in > PHP is 128M. I'm not sure what else it could be, though, as I don't > see any limitations on file_get_contents() discussed in the manual. > > Andrew Default memory limit is still 32MB on every default install I've seen. Thanks, Ash http://www.ashleysheridan.co.uk
From: Andrew Ballard on 29 Jun 2010 16:56 On Tue, Jun 29, 2010 at 4:39 PM, Ashley Sheridan <ash(a)ashleysheridan.co.uk> wrote: > > On Tue, 2010-06-29 at 16:37 -0400, Andrew Ballard wrote: > > > On Tue, Jun 29, 2010 at 4:21 PM, Ashley Sheridan > > <ash(a)ashleysheridan.co.uk> wrote: > > > > > > Have you looked at the memory settings in php.ini? > > > > > > > I doubt that is the cause, at least not by itself. 21504 characters is > > only 21K of data (could be more if the characters are multi-byte > > encoded, but still less than 100K) , and the default memory limit in > > PHP is 128M. I'm not sure what else it could be, though, as I don't > > see any limitations on file_get_contents() discussed in the manual. > > Default memory limit is still 32MB on every default install I've seen. > The manual currently shows 128M, and that's what I've seen for some time now. Even so, a function returning less than 100K shouldn't exhaust 32M of memory either, unless something else is at play. If there is a memory limit being reached, PHP should log either an error or warning (I can't remember which). Andrew
From: "Daevid Vincent" on 29 Jun 2010 17:18
> -----Original Message----- > From: Andrew Ballard [mailto:aballard(a)gmail.com] > Sent: Tuesday, June 29, 2010 1:56 PM > To: ash(a)ashleysheridan.co.uk > Cc: Jo?o C?ndido de Souza Neto; php-general(a)lists.php.net > Subject: Re: [PHP] file_get_contents limit > > On Tue, Jun 29, 2010 at 4:39 PM, Ashley Sheridan > <ash(a)ashleysheridan.co.uk> wrote: > > > > On Tue, 2010-06-29 at 16:37 -0400, Andrew Ballard wrote: > > > > > On Tue, Jun 29, 2010 at 4:21 PM, Ashley Sheridan > > > <ash(a)ashleysheridan.co.uk> wrote: > > > > > > > > Have you looked at the memory settings in php.ini? > > > > > > > > > > I doubt that is the cause, at least not by itself. 21504 > characters is > > > only 21K of data (could be more if the characters are multi-byte > > > encoded, but still less than 100K) , and the default > memory limit in > > > PHP is 128M. I'm not sure what else it could be, though, > as I don't > > > see any limitations on file_get_contents() discussed in > the manual. > > > > Default memory limit is still 32MB on every default install > I've seen. > > > > The manual currently shows 128M, and that's what I've seen for some > time now. Even so, a function returning less than 100K shouldn't > exhaust 32M of memory either, unless something else is at play. If > there is a memory limit being reached, PHP should log either an error > or warning (I can't remember which). Maybe try to specify the number of $maxlen bytes to read? http://us4.php.net/file_get_contents string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen = -1 ]]]] ) You could also do it the faster and "old fashioned" way: $fh = fopen('/tmp/test.zip', 'r'); $data = fread($fh, filesize('/tmp/test.zip')); fclose($fh); Or if it's multibyte maybe try this: function file_get_contents_utf8($fn) { $content = file_get_contents($fn); return mb_convert_encoding($content, 'UTF-8', mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true)); } |