Req #48421 [Opn->Fbk]: stream_get_line() - allow $length to be optional

From: Date: Wed, 30 Apr 2014 22:48:58 +0000
Subject: Req #48421 [Opn->Fbk]: stream_get_line() - allow $length to be optional
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-185532@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=48421&edit=1 ID: 48421 Updated by: levim@php.net Reported by: ryan dot brothers at gmail dot com Summary: stream_get_line() - allow $length to be optional -Status: Open +Status: Feedback Type: Feature/Change Request -Package: Feature/Change Request +Package: Streams related -Operating System: Linux +Operating System: Irrelevant -PHP Version: 5.2.9 +PHP Version: Any Block user comment: N Private report: N New Comment: Is this something you are still interested in seeing? Previous Comments: ------------------------------------------------------------------------ [2009-05-28 22:42:24] ryan dot brothers at gmail dot com Description: ------------ I believe stream_get_line() should allow the $length parameter to be optional by allowing a $length of -1 that would read the remaining buffer up to either the $ending delimiter or EOF. Currently if you pass a $length of 0, the $length defaults to PHP_SOCK_CHUNK_SIZE (8192) in ext/standard/streamsfuncs.c. If you pass a length of -1, a PHP Warning is generated. Other 'similar' functions that allow length to be optional or -1 are fgets, stream_get_contents, and file_get_contents. Also, the manual page for stream_get_line() states that this function is the same fgets() except for the handling of the delimiter - but another difference, at least right now, is that the $length parameter is required in stream_get_line(), but optional in fgets(). Reproduce code: --------------- <?php $fp = tmpfile(); fwrite($fp, str_repeat('a', 10000)); fseek($fp, 0); echo strlen(stream_get_line($fp, 0)); fseek($fp, 0); echo strlen(stream_get_line($fp, -1)); fclose($fp); Expected result: ---------------- 8192 10000 Actual result: -------------- 8192 Warning: stream_get_line(): The maximum allowed length must be greater than or equal to zero ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=48421&edit=1

« previous php.bugs (#185532) next »