Hallo,
wie wäre es, wenn du einfach eine fertige HTTP-Client-Library nutzt? In Zeiten von PSR-7 existieren davon einige zueinander kompatible, die bekannteste ist wohl Guzzle, sehr einfach über composer zu installieren.
Manuelles fsockopen und HTTP mit String-Operationen schreiben will später doch niemand mehr warten.
Viele Grüße, Matti