Well, then something is seriously wrong somewhere.
The script you have runs ob_start(), then does phpinfo(), then does ob_end_clean() -- all you have done is capture the output from phpinfo() which is then processed with random colors. The output you get from phpinfo() or the script you have posted should be no different. I did test both before posting and after your reply. Except for colors, I get identical information.
As for the error 400, you'd need to give a little more info out of the error.log file. 401 would be invalid user/pass which would be much more likely. a 400 error would suggest a proxy server or something inbetween having a problem moreso than a user. Are you behind a load balancer or caching forwarder? Is it a php request that gives the error? or any request?
Give me a little more info and I'll see if I can help. Might be a few days to get back to you as the winds are picking up.
