ID: 50196 Updated by: s...@php.net Reported By: stas at zend dot com -Status: Feedback +Status: Open Bug Type: Streams related Operating System: Windows PHP Version: 5.2SVN-2009-11-16 (SVN) New Comment:
Is it really that hard to find a script that opens http socket in the manual? OK, here it goes: <?php $socket = fsockopen("localhost", 80, $errno, $errstr, 30); if (!$socket) { echo "$errstr ($errno)<br />\n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: localhost\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($socket, $out); } $fp = fopen("data", "w"); stream_copy_to_stream($socket, $fp); Previous Comments: ------------------------------------------------------------------------ [2009-11-17 09:11:51] j...@php.net Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with <?php and ends with ?>, is max. 10-20 lines long and does not require any external resources such as databases, etc. If the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. ------------------------------------------------------------------------ [2009-11-16 22:08:27] stas at zend dot com Description: ------------ If I use stream_copy_to_stream with source stream being not file (say, HTTP socket) then I get this warning: Warning: Invalid CRT parameters detected This is because in _php_stream_copy_to_stream_ex() php_stream_stat() is applied to source stream, which goes to php_sockop_stat which calls fstat, which produces "invalid parameter" pseudo-exception. Reproduce code: --------------- $socket = open_http_socket(); $fp = fopen("data", "w"); stream_copy_to_stream($socket, $fp); Actual result: -------------- Warning: Invalid CRT parameters detected ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=50196&edit=1