Kuinka saan PHP skriptin lähettämään headerit(?) niin että skripti tunnistautuu selaimeksi?
Eli tavoitteena on hakea toiselta serveriltä dataa file_get_contents funktiolla, mutta palvelin ei anna dataa jos skripti ei tunnistaudu selaimeksi :)
Lisäys:
Kokeiltu näin:
<? $ch = curl_init(); $url = "http://www.osoite.com/tieto.txt"; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0); //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); //curl_setopt($ch, CURLOPT_PORT,443); $data = curl_exec($ch); print $data; curl_close($ch); ?>
Mutta palauttaa silti tyhjää, vaikka selaimella mentäessä osoitteeseen tulostuu kauntiisti yksi rivi.
Googlaa curl useragent.
Tällainen löytyi:
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
PHP:n tavallisten funktioiden (kuten file_get_contents) lähettämää User-Agent-tietoa voi vaihtaa globaalisti PHP:n asetuksista tai funktiolla ini_set ja paikallisesti luomalla sopivan asetuskontekstin funktiolla stream_context_create.
Aihe on jo aika vanha, joten et voi enää vastata siihen.