Not for 'how-to' coding questions but PHP theory instead, this forum is here for those of us who wish to learn about design aspects of programming with PHP.
Last I checked, you couldn't write to a remote page via fopen(). It only understands the URL wrapper protocols available through PHP while fsockopen() can communicate to nearly anything.
I'm sure they use the same streams code underneath. One has an interface for paths, the other for ports, but there is overlap (mainly due to the design of the Unix I/O system).