[PHP-DEV] PHP 4.0 Bug #9293 Updated: Character 0x1A seems to be unbreakabe barrier for all functions reading files.

2001-02-16 Thread sniper

ID: 9293
Updated by: sniper
Reported By: [EMAIL PROTECTED]
Old-Status: Analyzed
Status: Closed
Bug Type: Filesystem function related
Assigned To: 
Comments:

This is fixed in CVS already. readfile open files in binary mode.
Try a dev-version from http://www.php4win.de/

--Jani


Previous Comments:
---

[2001-02-16 07:22:08] [EMAIL PROTECTED]
0x1A, also known as CTRL-Z, is the END-OF-FILE character
used in MS-DOS text files 

for fread() you just have to open your files as binary 
by adding "b" to the mode string in fopen

readfile() should do this by itself i think, so for readfile()
this really qualifies as a bug IMHO

---

[2001-02-15 21:39:20] [EMAIL PROTECTED]
Function readfile("filename") stops reading on character 0x1A. Exactly the same hapens 
with function fread ($f, $size); regardless of $size value. The filesystem is FAT32.

Regards,
Piotr

p.s.
My php.ini file:

[PHP]

;;;
; About this file ;
;;;
; This file controls many aspects of PHP's behavior.  In order for PHP to
; read it, it must be named 'php.ini'.  PHP looks for it in the current
; working directory, in the path designated by the environment variable
; PHPRC, and in the path that was defined in compile time (in that order).
; Under Windows, the compile-time path is the Windows directory.  The
; path in which the php.ini file is looked for can be overriden using
; the -c argument in command line mode.
;
; The syntax of the file is extremely simple.  Whitespace and Lines
; beginning with a semicolon are silently ignored (as you probably guessed).
; Section headers (e.g. [Foo]) are also silently ignored, even though
; they might mean something in the future.
;
; Directives are specified using the following syntax:
; directive = value
; Directive names are *case sensitive* - foo=bar is different from FOO=bar.
;
; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one
; of the INI constants (On, Off, True, False, Yes, No and None) or an expression
; (e.g. E_ALL & ~E_NOTICE), or a quoted string ("foo").
;
; Expressions in the INI file are limited to bitwise operators and parentheses:
; | bitwise OR
; & bitwise AND
; ~ bitwise NOT
; ! boolean NOT
;
; Boolean flags can be turned on using the values 1, On, True or Yes.
; They can be turned off using the values 0, Off, False or No.
;
; An empty string can be denoted by simply not writing anything after the equal
; sign, or by using the None keyword:
;
;   foo =   ; sets foo to an empty string
;   foo = none  ; sets foo to an empty string
;   foo = "none"; sets foo to the string 'none'
;
; If you use constants in your value, and these constants belong to a dynamically
; loaded extension (either a PHP extension or a Zend extension), you may only
; use these constants *after* the line that loads the extension.
;
; All the values in the php.ini-dist file correspond to the builtin
; defaults (that is, if no php.ini is used, or if you delete these lines,
; the builtin defaults will be identical).



; Language Options ;


engine  =   On  ; Enable the PHP scripting language engine 
under Apache
short_open_tag  =   On  ; allow the  tags are recognized.
asp_tags=   Off ; allow ASP-style <% %> tags
precision   =   14  ; number of significant digits displayed in 
floating point numbers
y2k_compliance  =   Off ; whether to be year 2000 compliant (will cause 
problems with non y2k compliant browsers)
output_buffering= Off   ; Output buffering allows you to send header lines 
(including cookies)
; even after you send body 
content, in the price of slowing PHP's
; output layer a bit.
; You can enable output 
buffering by in runtime by calling the output
; buffering functions, or 
enable output buffering for all files
; by setting this directive to 
On.
implicit_flush  = Off   ; Implicit flush tells PHP to tell the output layer to 
flush itself
; automatically after every 
output block.  This is equivalent to
; calling the PHP function 
flush() after each and every call to print()
; or echo() and each a

[PHP-DEV] PHP 4.0 Bug #9293 Updated: Character 0x1A seems to be unbreakabe barrier for all functions reading files.

2001-02-16 Thread hholzgra

ID: 9293
Updated by: hholzgra
Reported By: [EMAIL PROTECTED]
Old-Status: Open
Status: Analyzed
Bug Type: Filesystem function related
Assigned To: 
Comments:

0x1A, also known as CTRL-Z, is the END-OF-FILE character
used in MS-DOS text files 

for fread() you just have to open your files as binary 
by adding "b" to the mode string in fopen

readfile() should do this by itself i think, so for readfile()
this really qualifies as a bug IMHO

Previous Comments:
---

[2001-02-15 21:39:20] [EMAIL PROTECTED]
Function readfile("filename") stops reading on character 0x1A. Exactly the same hapens 
with function fread ($f, $size); regardless of $size value. The filesystem is FAT32.

Regards,
Piotr

p.s.
My php.ini file:

[PHP]

;;;
; About this file ;
;;;
; This file controls many aspects of PHP's behavior.  In order for PHP to
; read it, it must be named 'php.ini'.  PHP looks for it in the current
; working directory, in the path designated by the environment variable
; PHPRC, and in the path that was defined in compile time (in that order).
; Under Windows, the compile-time path is the Windows directory.  The
; path in which the php.ini file is looked for can be overriden using
; the -c argument in command line mode.
;
; The syntax of the file is extremely simple.  Whitespace and Lines
; beginning with a semicolon are silently ignored (as you probably guessed).
; Section headers (e.g. [Foo]) are also silently ignored, even though
; they might mean something in the future.
;
; Directives are specified using the following syntax:
; directive = value
; Directive names are *case sensitive* - foo=bar is different from FOO=bar.
;
; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one
; of the INI constants (On, Off, True, False, Yes, No and None) or an expression
; (e.g. E_ALL & ~E_NOTICE), or a quoted string ("foo").
;
; Expressions in the INI file are limited to bitwise operators and parentheses:
; | bitwise OR
; & bitwise AND
; ~ bitwise NOT
; ! boolean NOT
;
; Boolean flags can be turned on using the values 1, On, True or Yes.
; They can be turned off using the values 0, Off, False or No.
;
; An empty string can be denoted by simply not writing anything after the equal
; sign, or by using the None keyword:
;
;   foo =   ; sets foo to an empty string
;   foo = none  ; sets foo to an empty string
;   foo = "none"; sets foo to the string 'none'
;
; If you use constants in your value, and these constants belong to a dynamically
; loaded extension (either a PHP extension or a Zend extension), you may only
; use these constants *after* the line that loads the extension.
;
; All the values in the php.ini-dist file correspond to the builtin
; defaults (that is, if no php.ini is used, or if you delete these lines,
; the builtin defaults will be identical).



; Language Options ;


engine  =   On  ; Enable the PHP scripting language engine 
under Apache
short_open_tag  =   On  ; allow the  tags are recognized.
asp_tags=   Off ; allow ASP-style <% %> tags
precision   =   14  ; number of significant digits displayed in 
floating point numbers
y2k_compliance  =   Off ; whether to be year 2000 compliant (will cause 
problems with non y2k compliant browsers)
output_buffering= Off   ; Output buffering allows you to send header lines 
(including cookies)
; even after you send body 
content, in the price of slowing PHP's
; output layer a bit.
; You can enable output 
buffering by in runtime by calling the output
; buffering functions, or 
enable output buffering for all files
; by setting this directive to 
On.
implicit_flush  = Off   ; Implicit flush tells PHP to tell the output layer to 
flush itself
; automatically after every 
output block.  This is equivalent to
; calling the PHP function 
flush() after each and every call to print()
; or echo() and each and every 
HTML block.
; Turning this option on has 
serious performance implications, and
; is generally recommended for 
debuggi