По чему не работает PHP код получения страницы по HTTP?
Почему бы не использовать curl или уже готовые библиотеки, вроде этой: simplehtmldom.sourceforge.net ? Или не прописать условия, мол, если file_get_contents не сработал, то делать с сокетами? Дело в том, что на хостинге может не проходить Ваш user agent или могут резаться соединения по иным фильтрам.
А может fsockopen выдает ошибку? У Вас же подавление ошибок через собаку, если ее убрать, ворнинги какие-то посыпятся же, верно?
Что в $errno и $errstr?
А где Вы пишете $request в сокет?