ID: 39874 Updated by: [EMAIL PROTECTED] Reported By: sramage at nucleuslabs dot com Status: Open -Bug Type: *Compression related +Bug Type: Documentation problem Operating System: FREEBSD 5 PHP Version: 4.4.4 New Comment:
gzread() and gztell() operate on _uncompressed_ bytes, that should be mentioned in gztell() docs (already done for gzread()). Reclassified as docu problem. Previous Comments: ------------------------------------------------------------------------ [2006-12-18 18:36:46] sramage at nucleuslabs dot com Description: ------------ The GZTELL function returns the gz file pointer as the uncompressed data byte position not the real file pointer location when writing to a file. I am not sure if this is a bug or just the way it is. but it doesn't really make sense so I am reporting it. The example is very simple and clear. just use any text file that is 2 MB or bigger in length to recreate this bug We use the recommened php ini with the following changes: memory_limit = 32M error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR upload_max_filesize = 10Mb session.cookie_lifetime = 0 session.cookie_path = / session.gc_probability = 1 session.gc_divisor = 1 session.gc_maxlifetime = 3600 session.entropy_length = 16 session.entropy_file = /dev/urandom modules: './configure' '--enable-versioning' '--enable-memory-limit' '--with-layout=GNU' '--disable-all' '--with-regex=php' '--with-pcre-regex' '--with-pear' '--enable-ftp' '--with-openssl=/usr/local/ssl' '--enable-ftp' '--with-mysql=/usr/local/mysql' '--enable-overload' '--enable-session' '--enable-xml' '--with-zlib=yes' '--with-apxs=/usr/local/apache/bin/apxs' '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php' '--enable-mbstring=all' '--enable-track-vars' '--enable-force-cgi-redirect' '--with-gettext' '--with-pspell' Reproduce code: --------------- <? //Example: //some_file.sql plain text file - filesize = 2,048,000 bytes $text_fp=fopen('some_file.sql','r'); $gz_fp=gzopen('some_file.sql.gz','wb9'); while(!feof($text_fp)){ gzwrite($gz_fp,fread($text_fp,655360)); } fclose($text_fp); echo "gztell = ".gztell($gz_fp)."<BR>\n"; gzclose($gz_fp); echo "filesize = ".filesize('some_file.sql.gz')."<BR>\n"; ?> Expected result: ---------------- gztell = 249264 filesize = 249264 (or something closer to the actual file pointer position in the gz file) Actual result: -------------- gztell = 2048000 filesize = 249264 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=39874&edit=1