ID: 39874 Updated by: [EMAIL PROTECTED] Reported By: sramage at nucleuslabs dot com -Status: Open +Status: Closed Bug Type: Documentation problem Operating System: FREEBSD 5 PHP Version: 4.4.4 New Comment:
This bug has been fixed in the documentation's XML sources. Since the online and downloadable versions of the documentation need some time to get updated, we would like to ask you to be a bit patient. Thank you for the report, and for helping us make our documentation better. "its offset into the uncompressed file stream" Previous Comments: ------------------------------------------------------------------------ [2006-12-20 17:05:30] sramage at nucleuslabs dot com I tried using ftell and it returned the exact same result as gztell. If ftell returns the _uncompressed_ byte pointer position, wouldn't that make the gztell function pointless? Shouldn't one of these functions tell the *actual* file pointer position? I was trying to create specific size GZ files using this function as a measuring device I have found another way that is inefficient but it works (we're only talking about 10 seconds over 100MB so not a big deal just wasn't sure about the actual difference between ftell and gztell or if they just a designed to behave a certain way when they encounter compressed/uncompressed data). hopefully this help with the documentation. Thanks! ------------------------------------------------------------------------ [2006-12-19 15:14:19] [EMAIL PROTECTED] gzread() and gztell() operate on _uncompressed_ bytes, that should be mentioned in gztell() docs (already done for gzread()). Reclassified as docu problem. ------------------------------------------------------------------------ [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