Download einer PHP Datei in C++

Useeu

Gesperrt
Hi,

ich möchte gerne eine Art "HTML" Version einer PHP downloaden, jedoch klappt es bei mir nur mit .htm, .html Dateien. Weiß jemand, wie ich PHP Dateien downloaden kann? Beispiel: Wenn man auf eine index.php drückt und die Seite geladen hat einfach auf Quelltext anzeigen -> das meine ich mit "HTML-Version".

mfg


Useeu
 
Also willst du nur den von PHP generierten HTML-Code runterladen?! Gut, den PHP Code ansich kannst du auch nicht runterladen.
Wie ziehst du denn die HTML Seiten? Über ne richtige Socket-Verbindung und
nem HTTP-Request an den Webserver sollte das genau so funktionieren wie
mit den HTML Seiten auch, denn wenn du z.B. ein GET /index.html sendest
bekommst du direkt die HTML Seite, wenn du jedoch ein GET /index.php
sendest jagt der Webserver die index.php durch den PHP-Parser und schickt
dir dann den generierten Code, das sieht der Client aber natürlich nicht =)

Greetz...
Sinac
 
Hi Sinac,

Code:
#include <iostream> 
#include <fstream>
#include <winsock2.h> 
using namespace std; 

int main() 
{ 
  WSADATA wsa; 
  WSAStartup(MAKEWORD(1,1),&wsa); 
  SOCKET soc = socket(AF_INET,SOCK_STREAM,0); 
  HOSTENT* he = gethostbyname("host"); 
  SOCKADDR_IN addr; 
  memset(&addr,0,sizeof(SOCKADDR_IN)); 
  addr.sin_family = AF_INET; 
  addr.sin_port = htons(80); 
  addr.sin_addr = *(struct in_addr*) he->h_addr; 
  connect(soc,(SOCKADDR*)&addr,sizeof(SOCKADDR)); 
  send(soc,"GET /index.php HTTP/1.0\n\n",65,0); 
  char buf[5001]; 
  int rc=recv(soc,buf,5000,0); 
  buf[rc]='\0';
  ofstream file("test.html");
  file<<buf; 
  system("pause");     
  return 0; 
}

-> Klappt bei mir nicht.

mfg


Useeu
 
Sieht niemand einen Fehler?

Ich dachte zuerst auch an URLDownloadToFile, aber das geht nur bis zu einer bestimmten Größe und bei PHP Dateien habe ich es auch noch nicht getestet. VIelleicht weiß ja jemand auch noch, wie man das OUT_OF_MEMORY Problem bei URLDownloadToFile löst....

mfg
 
sorry... ich seh kein fehler... zumal der code bei mir funktioniert....
allerdings fast nur auf meinem webserver... der nur auf die erste zeile im request reagiert.... apache webserver z.b. sind da anders... du solltest dein request evtl. etwas ausklügeln...

und evtl "HTTP/1.1\r\n" nehmen
 
Zurück