Hallo Felix,
ich weiß nicht, ob ich den Knackpunkt erkannt habe, aber ...
$http = sprintf( // generate HTTP request 'GET http://%1$s/%2$s HTTP/1.1'."\r\n" // das ist definitiv falsch! // Protokoll und Hostname haben in // dieser Zeile nichts verloren! // Proxy Server . 'Host: %1$s'."\r\n" // Proxy-Authorization? . '%3$s' . 'User-Agent: %4$s'."\r\n" . 'Connection: close'."\r\n" // empty line to end HTTP headers . "\r\n", $t->settings['host'], $url, (empty($t->settings['proxy-server']) ? '' : sprintf( 'Proxy-Authorization: Basic %s'."\r\n", $t->settings['proxy-auth'] ) ), $t->settings['user-agent'] );
An der kommentierten Stelle ist definitiv fehlerhaftes HTTP; es überrascht mich, dass der Server das anscheinend klaglos akzeptiert. Korrekt heißt die erste Zeile des Requests beispielsweise:
GET /sub/somedoc.txt HTTP/1.1
Wenn ich nun den String mit
'GET http://%1$s/%2$s HTTP/1.1'
durch ein s ergänze, damit er nun auf'GET https://%1$s/%2$s HTTP/1.1'
lautet, ändert das nicht das Protokoll - was mich eigentlich auch gewundert hätte.
Eben. Das ändert nur den Lieferschein, der in der Sendung liegt.
Muss ich nun als Protokoll ssl://felix-riesterer.de verwenden
AFAIS ja, und zwar beim fsockopen(), denn HTTPS ist ja genau das: HTTP über eine zuvor hergestellte SSL-Verbindung. Ich habe das aber auch noch nie gemacht, daher vermute ich nur, dass es so gehen muss.
Ciao,
Martin
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy