Nazdar lidi,
Chci vytvořit PHP skript, který pošle HTTP požadavek ve formě adresy (např.: http://www.neco.cz/odeslat.php?kdo=nekdo&co=blablabla) a jeho výsledkem je moje vygenerovaná stránka, nikoliv stránka toho serveru.
Ten začátek bych věděl, ale nevím jak získat odpověď. Vím, že to začíná nějak takto:
<?
$fp = FSockOpen("www.neco.cz",80);
if($fp) {
FputS($fp, "GET /odeslat.php?kdo=nekdo&co=bla HTTP/1.0\n\n");
--- zde už nevím co dál ---
}
FClose($fp);
?>
Tam "zde už nevím ..." bych chtěl vypsat odpověď HTTP požadavku. Zkoušel jsem všemožně, ale nějak mně to blbne PHP (dlouho zpracovává).
Prosím o pomoc. Dík Tomík.
Nějak to nechápu:o))))
Jestli jde o ty proměné tak jsou vždy uložené v $kdo a $co ale to asi víš....
To vím. Mě jde o tohle.
Kdy? to po?lu normálně (http://www.neco.cz/...), tak to take normalně odpoví, tzn. , ?e se zobrazí stránka s odpovědi umístěné na jeho serveru. Ja chci, aby se místo jeho odpovědi zobrazila moje odpověď.
Snad tomu trochu rozumíte.
Tomík
lepsi mozna bude pouziti HTTP/1.1 kvuli virtualnim serverum, kterych je dnes vsude dost. a mozna bych zkusil pouzit "/r/n" misto "/n"...
m.sa.
Dík, zkusím.
Mě jde ale spí?e o to jak získat odpověď.
Tedy to, co napsat v "zde u? nevím co dál"
odpoved ctes stejne, jako ze souboru. takze treba FPutS()...
jejda, lidi, to je uz asi patej clovak (po mne) kdo to potrebuje; dobre, mate to tady:
__nepuzivej__ http/1.1 kvuli kompresi (podle specifikace ji musi umet kazdy http/1.0 klient/server), ale pouzij http/1.0 a hlavicku Host
<?php
$host="www.server.cz";
$path="/docs/file.php?lang=cs";
// $path musi zacinat na "/", tj min.
// $path="/";
$fp = fsockopen ("www.example.com", 80);
if (!$fp) {
echo "chybicka se vloudila<br/>\n";
} else {
fputs ($fp, "GET $path HTTP/1.0\r\n");
fputs($fp, "Host: $server\r\n");
fputs($fp, "User-Agent: php\r\n\r\n");
while (!feof($fp)&&fgets($fp, 1024)!="") {}
while (!eof($fp)){echo fgets($fp, 1024);}
fclose ($fp);
}
?>
teda doufam :-))
j
juj, sorry, jsou tam chybycky :-((
>musi umet kazdy http/1.0 klient/server)
-> musi umet kazdy http/1.1 klient/server, samozrejme :-)
>while (!feof($fp)&&fgets($fp, 1024)!="") {}
-> while (!feof($fp)&&(fgets($fp, 1024)!="")){}
jinak tenhle skript ti zahazuje http hlavicky (tj. ceka, nez prijde prazdna radka) a tim padem nesleduje presmerovani, slo by to odchytit pres ereg(), ale to ti uz nenapisu, jsem moc linej :-)
i tahle varianta by mela fungovat ve vetsine pripadu, kdyztak mi napis a vyresime to
j
http://jkt.wz.cz
ale asi jsem spaten pochopil otazku :-))
j
To nic, ani já tomu moc nerozumím. To jen ta moje hlava jaksi blbne. Mimoto, už se mi to podařilo rozchodit.
Děkuji všem za rady.
Tomík.