Hallo und guten Morgen,
Weil der Server den Request vom Browsr akzeptiert und den von PHP nicht. Warum das so ist, kann man nur spekulieren, solange man nicht den Serverbetreiber fragt. (Warum fragst du den nicht, sondern Außenstehende?)
Vielleicht weil wir hier (virtuell) zusammenkommen, um über genau solche Techniken zu diskutieren? Zeig doch lieber, wie man sowas macht und/oder wie man es erkennen kann, wenn ein Anbieter derartige Einschränkungen macht.
Es kann damit zu tun haben, dass der Server bestimmte HTTP-Header erwartet, die ein Browser standardmäßig mitsendet, der PHP-Request jedoch nicht. Andere Möglichkeiten der Auswertung hat der Server nicht.
Oder, dass eben der Header "x-powered-by: php ..." mitgesendet wird
Man kann den PHP-Funktionen (abgesehen von DOMDocument::load) einen Stream-Kontext mitgeben, darüber kann man zusätzliche Header setzen. Das ist im PHP-Handbuch auf den Seiten zu den Funktionen und auf verlinkten Kapiteln (Supported Protocols and Wrappers -> Context Options) beschrieben.
Welche Header der Browser sendet, kann man mit den eingebauten Entwocklertools herausfinden. Mein erster Versuch wäre, einen (beliebigen Wert für) User-Agent mitzusenden.
Man kann auch vor dem Absenden des "Post by Host" oder des "Get by Host" die gesetzten Header abfragen und verändern.
Grüße
TS