Czy ktoś mógłby przytoczyć fragment kodu, który po podaniu linku (np. www.onet.pl/grafika.jpg) otwiera połączenie za pomocą fsockopen z serwerem, i kopiuje wskazany w linku plik do własnego katalogu?
Z góry dziękuję za pomoc.
<?php $iError = 0; $sError_msg = ''; { } $command = \"GET /sciezka/obrazek_zrodlowy.png HTTP/1.1nHost: 127.0.0.1nn\"; // na koncu MUSZA byc 2 x n { } $data = ''; { } // znajdz dlugosc pliku (w bajtach) w zmiennej $data, [Content-Length: xxxxx] // przydadza sie wyrazenia regularne, z ktorymi u mnie kiepsko $dlugosc_pliku = ... // i wyciągnij z $data ostatnie xxxx bajtow -- to bedzie obrazek // zapisz obraz file_put_contents( 'obraz.png', $obraz ); ?>
<?php $iError = 0; $sError_msg = ''; $file= 'http://localhost/banner.gif'; if($parsed_url[\"port\"]=='') $parsed_url[\"port\"]=80; if ( ( $handle = fsockopen( $parsed_url[\"host\"], $parsed_url[\"port\"], $iError, $sError_msg ) ) === FALSE ) { } $command = \"GET /{$parsed_url[\"path\"]} HTTP/1.1nHost: {$parsed_url[\"host\"]}nn\"; #$command = \"GET /banner.gif HTTP/1.1nHost: 127.0.0.1nn\"; << z tym tesz nie działa... // na koncu MUSZA byc 2 x n { } $data = ''; { } // znajdz dlugosc pliku (w bajtach) w zmiennej $data, [Content-Length: xxxxx] // przydadza sie wyrazenia regularne, z ktorymi u mnie kiepsko if (!preg_match('#Content-Length:([0-9]+)[^ /][s]+#i', $data, $file_data1) || !preg_match('#Content-Type: image/[x-]*([a-z]+)[s]+#i', $data, $file_data2)) $dlugosc_pliku = $file_data1[1]; // i wyciągnij z $data ostatnie xxxx bajtow -- to bedzie obrazek // zapisz obraz ?>