Autor Zpráva
mirec
Profil *
cawko

potrebujem aby mi cron kazde 2 hodiny cez tento kod skopiroval obrazok na host. (chcem si urobit zrychlene video)

<?php
$newimage = date("y.m.d.H.i")."_webkamera.jpg";
copy("http://www.hesocom.sk/kamera.jpg", $newimage);
?>

lenze na hoste je zakazane nacitavat z externej url..
pls nenapadne vas nejake riesenie? :-) na lokale mi to frci, ale mat rok zapaty komp to zas neee.. heh
neda sa nejak skombinovat cron a formular na upload suboru?? pripadne nejaky javascript?
WertriK
Profil
Copy už se nepoužívá

http://cz2.php.net/manual/cs/function.file-get-contents.php
http://cz2.php.net/manual/cs/function.file-put-contents.php
zero0x
Profil
wow, to je super napad, si urobit z verejnej kamery zrychlene video :o

vyskusam aj ja :D

potom dam vediet, ako som dopadol
zero0x
Profil
ale inac nie je jednoduchsie to urobit normalne pod linuxom?

ale inac osobne by som to riesil

crontab (hviezdicky a cisla) wget http://www.test.sk

a potom pre doladenie man crontab, man wget

sice ked nemas shell, tak je to nanic..
zero0x
Profil
toto funguje


<?php

$source = "http://www.hesocom.sk/kamera.jpg";

$obrazok = file_get_contents($source);

$nazov = "obrazok_".date("d.m.Y_H.i").".jpg";

file_put_contents($nazov, $obrazok);

echo "copy complete";
?>
mirec
Profil *
mooooc dik!!
zero0x
Profil
nemas zaco, aj mne sa to celkom paci robit zrychlene animacie z webcamov ;-)
mirec
Profil *
ehmm, teraz to skusam ale pise to:


Warning: file_get_contents() [function.file-get-contents.php]: URL file-access is disabled in the server configuration in /home/free/tym.sk/b/bz/root/www/webkamera_1/kapera.php on line 7

Warning: file_get_contents(http://www.hesocom.sk/kamera.jpg) [function.file-get-contents.php]: failed to open stream: no suitable wrapper could be found in /home/free/tym.sk/b/bz/root/www/webkamera_1/kapera.php on line 7

Fatal error: Call to undefined function: file_put_contents() in /home/free/tym.sk/b/bz/root/www/webkamera_1/kapera.php on line 15
zero0x
Profil
mne to na platenom hostingu funguje, tak ale na IC freehosting toho vela nezriesis..
mirec
Profil *
no to jasnacka..
prave preto som pisal ci nekoho nenapadne nejaky "kuleh".. :)
alebo ak by niekto nahodov poznal nejaky free co to ma povolene..

myslim ze by sa to malo nejak dat urobit cez upload suboru. len si to neviem predstavyt ako by som spojil crona s formularom na upload.
mirec
Profil *
noooo.... natrafil som na tuto funkciu.
KURNA, ale za boha to neviem rozbehnut. :((




Ja na nacitavanie inych stranok pouzivam tuto funkciu:kód:

function senddata($host,$method,$path,$data=null,$proxy=null,$proxyport=null,$c timeout=5,$rtimeout=35,$fname=null,$fdata=null,$htmlpolenazov=null,$sk apparam=1,$cookie=null)
{
if($ctimeout<5)
{
$ctimeout=5;
}
if($rtimeout<5)
{
$rtimeout=5;
}
$socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
if(!$socket)
{
skap("Chyba pri vytvarani socketu! ".socket_strerror(socket_last_error()),$skapparam);
return;
}
$ipaddr=gethostbyname($host);
if(!socket_set_nonblock($socket))
{
socket_close($socket);
skap("Chyba! ".socket_strerror(socket_last_error()),$skapparam);
return;
}
$port=(($proxyport)?$proxyport:80);
if($proxy)
{
//info("Pripajam sa k PROXY serveru $proxy...");
$ipaddr=$proxy;
}
$timeout=$ctimeout;
$cas=time();
while((time()-$cas)<=$timeout)
{
$con=@socket_connect($socket,$ipaddr,$port);
if($con)
{
break; // ok pripojene
}
$kod=socket_last_error();
if(($kod!=115) && ($kod!=114))
{
socket_close($socket);
skap("Chyba pri pokuse o pripojenie k ".(($proxy)?"PROXY serveru $proxy":$host)."! ".socket_strerror(socket_last_error()),$skapparam);
return;
}
sleep(1);
}
if(!$con)
{
socket_close($socket);
skap("TIMEOUT pri pokuse o pripojenie k ".(($proxy)?"PROXY serveru $proxy":$host)."!",$skapparam);
return;
}
//info("Pripojenie trvalo ".(time()-$cas)." sekund.");
if(!socket_set_block($socket))
{
socket_close($socket);
skap("Chyba! ".socket_strerror(socket_last_error()),$skapparam);
return;
}
if(($method=="GET") && isset($data))
{
$path .= "?$data";
}
$out="$method ".(($proxy)?"http://$host":"")."$path HTTP/1.1 ";
if(!$fname)
{
$out.="Content-Type: application/x-www-form-urlencoded ";
}
else
{
$bnd=substr(md5(randstr(15)),0,16);
while(!(strpos($bnd,$fdata)===FALSE))
{
$bnd=substr(md5(randstr(15)),0,16);
}
$out.="Content-Type: multipart/form-data; boundary=$bnd ";
}
//nejaky ten exoticky browser :) safari na mac OS X PPC
$out.="User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/412 (KHTML, like Gecko) Safari/412 ";
if($cookie)
{
$out.="Cookie: $cookie ";
}
$out.="Host: $host ";
if($fname)
{
$datapole=explode("&",$data);
$ppol=count($datapole);
$data="";
$wfile=0;
for($ppos=0;$ppos<$ppol;$ppos++)
{
$htmlpole=explode("=",$datapole[$ppos]);
$data.="--$bnd ";
if($htmlpole[0]==$htmlpolenazov)
{
//toto je subor
if(!$wfile)
{
//odstrani problem s a=b&a=b
$data.="Content-Disposition: form-data; name="".$htmlpole[0].""; filename="$fname" ";
$data.="Content-Type: application/octet-stream ";
$data.=$fdata." ";
$wfile=1;
}
}
else
{
//previest a=b na multipart
$data.="Content-Disposition: form-data; name="".$htmlpole[0]."" ";
$data.=$htmlpole[1]." ";
}
}
}
$out.="Content-length: ".(($method=="POST")?strlen($data):0)." ";
if($proxy)
{
$out.="Proxy-Connection: Close ";
}
else
{
$out.="Connection: Close ";
}
if(($method=="POST") && isset($data))
{
$out.=$data;
}
//echo("<pre>$out</pre>");
//info("Posielam HTTP request na ".(($proxy)?"nacitanie ":"")."$host...");
if(socket_write($socket,$out)===FALSE)
{
skap("Chyba pri posielani HTTP poziadavky! ".socket_strerror(socket_last_error()),$skapparam);
return;
}
if(!socket_set_nonblock($socket))
{
socket_close($socket);
skap("Chyba! ".socket_strerror(socket_last_error()),$skapparam);
return;
}
$cas=time();
$cas1=time();
$timeout=$rtimeout;
while((time()-$cas)<=$timeout)
{
$vysledok=@socket_read($socket, 2048);
if($vysledok===FALSE)
{
if(socket_last_error()!=11)
{
socket_close($socket);
skap("Chyba pri citani odozvy ".(($proxy)?"PROXY":"")." serveru... ".socket_strerror(socket_last_error()),$skapparam);
return;
}
sleep(1);
}
else
{
if($vysledok=="")
{
$cas=-1;
break; //ok vsetky data su precitane
}
$res.=$vysledok;
}
}
if($cas>0)
{
skap("TIMEOUT pri citani odozvy serveru... ".socket_strerror(socket_last_error()),$skapparam);
return;
}
//info("Citanie odozvy trvalo ".(time()-$cas1)." sekund.");
//info("Uzatvaram socket...");
socket_close($socket);
return $res;
}



Toto nacita stranku aj s HTTP headermi... pre ziskanie cisteho HTML kodu (aj ked server vrati Transfer-Encoding: chunked):kód:
function decode($stranka,$funkcia=0)
{
$hlavicky=1;
$pozicia=0;
while($hlavicky)
{
$hlavicka=substr($stranka,$pozicia,strpos($stranka," ",$pozicia)-$p ozicia);
$pozicia=$pozicia+strlen($hlavicka)+2;
if(substr($hlavicka,0,8)=="HTTP/1.1")
{
//prva uvodna hlavicka!
//extrahovat HTTP kod
if($funkcia)
{
$httpkod=substr($hlavicka,9);
return $httpkod;
}
//info("HTTP KOD: $httpkod");
}
if(substr($hlavicka,0,17)=="Transfer-Encoding")
{
if(substr($hlavicka,19)=="chunked")
{
$chunked=1;
}
}
if(strlen($hlavicka)<3)
{
//koniec http hlaviciek
$hlavicky=0;
}
}
if(!$chunked)
{
$vysledok=substr($stranka,$pozicia);
}
else
{
$chunk=1;
$vysledok="";
while($chunk)
{
$chunk=substr($stranka,$pozicia,strpos($stranka," ",$pozicia)-$pozi cia);
$chunkdec=hexdec($chunk);
$vysledok.=substr($stranka,$pozicia+strlen($chunk)+2,$chunkdec);
$pozicia=$pozicia+$chunkdec+strlen($chunk)+4;
}
}
return $vysledok;
}



Senddata podporuje GET aj POST metody, cookies, proxy servery a upload suborov.

Priklady pouzitia:

jednoduche nacitanie uvodnej stranky serverukód:
$HTMLkod=decode(senddata("ic.cz","GET","/"));


poslanie GETkód:
$HTMLkod=decode(senddata("stranka.domena","GET","/skript.php","paramat er1=x&parameter2=y"));


poslanie POST datakód:
$HTMLkod=decode(senddata("stranka.domena","POST","/skript.php","parama ter1=x&parameter2=y"));


poslanie GET aj POST sucasnekód:
$HTMLkod=decode(senddata("stranka.domena","POST","/skript.php?GETparam 1=x&GETparam2=y","POSTparam1=x&POSTparam2=y"));


upload suboru na server+GET aj POST data+cookie+proxy server
pri uploade musi byt metoda post! kód:
$HTMLkod=decode(senddata("stranka.domena","POST","/skript.php?getparam=foo&dalsi=bar","postparam=abc&dalsi=cde&SUBOR=hocico","1.2.3.4","8080",5,35,"nazov_suboru.txt",$data_suboru,"SUBOR",1,"PHPSESSID=cookie_data"));

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0