We do know - we are just leaving you guessing ๐
Anyhow - to hopefully bring some light to your problem....
Try taking a look at a couple of posts back.... they referred you to http://www.php.net/manual/en/function.fsockopen.php
I would REALLY recommend reading this site again and again and again.... it is one of the most useful PHP sites out there..... anyhow - on with the solution...
I would say after reading the article STOP USING HTTP/1.1.
Try HTTP/1.0 - since your response is obviously being encoded at some point. Well that's my guess anyhow.
Without you posting more of your actual response to this board (i.e the complete set of headers you are getting back in each case).
OooOOoo - just noticed another thing at th ebottom of your code.... the stream you are getting is BINARY (hence the suggestion to change to fread as you have done). But when you come to write it back out, you are reverting to fputs, which is NOT binary safe. Try changing this to fwrite (again - reading php.net would help you with this loads since there are plenty of user comments on it).
And one final point - CLOSE YOUR FILE HANDLES! your last line should be "fclose($fr);".
Anyhow - hope this helps.