Написал граббер, вот код: PHP: $file=file_get_contents('http://kit.simplyonline.org/barcelona/process.php?name=inlanger&number=5&kit=1'); preg_match_all("#<img src=\"../(.*?)\" />#is",$file,$file1); $file=$file1[1][0]; echo "<img src=http://kit.simplyonline.org/".$file.">"; Но картинку он не выводит. Если просто перейти перейти по ссылке Code: http://kit.simplyonline.org/barcelona/process.php?name=inlanger&number=5&kit=1 и нажать на ссылку - Download Picture, то картинка скачается, а вот если взять ссылку на только что сгенерированную картинку, и попытаться открыть её в одтельном окне, то выдаст 403 ошибку... Помогите советом
PHP: <?php $fp = fsockopen('kit.simplyonline.org', 80); if($fp) { fputs($fp, "POST http://kit.simplyonline.org/output/1214733118.png HTTP/1.0\nReferer: kit.simplyonline.org/barcelona/process.php\n\n"); echo '<pre>'; while(!feof($fp)) echo fgets($fp); echo '</pre>'; fclose($fp); } ?> Не катит... Ответ - HTTP/1.1 403 Forbidden http://sportmobile.net/futbolka/test.php вот тут лежит мой скрипт...
PHP: $file = file_get_contents('http://kit.simplyonline.org/barcelona/process.php?name=inlanger&number=5&kit=1'); preg_match_all("#<img src=\"../(.*?)\" />#is",$file,$matches); $host = 'kit.simplyonline.org'; $sock = fsockopen($host, 80, $errno, $errstr, 5); if(!$sock){ echo $errstr($errno); }else{ $header = "GET /{$matches[1][0]} HTTP/1.1\r\n"; $header .= "Host: $host\r\n"; $header .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14\r\n"; $header .= "Keep-Alive: 300\r\n"; $header .= "Connection: keep-alive\r\n"; $header .= "Referer: http://kit.simplyonline.org/barcelona/process.php?name=inlanger&number=5&kit=1\r\n\r\n"; fwrite($sock, $header); while(!feof($sock)){ $result .= fgets($sock, 1024); } echo $result; } Он получает изображение, собственно дальше делай сним что хочеш.
вот PHP: <?php $file = file_get_contents('http://sportmobile.net/futbolka/test.php'); $img = substr($file,strpos($file,"\r\n\r\n")+4); header('Content-type: image/png'); echo $img; ?>
сделай вывод картинки вот так... PHP: <? $user_agent = "User_agent: Opera/9.50 (Windows NT 5.1; U; ru)\r\n"; $accept = "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,image/x-bitmap, */*;q=0.1\r\n"; $accept_language = "Accept-Language: ru, en;q=0.9\r\n"; $accept_charset = "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1 *;q=0.1\r\n"; $referer = "Referer: http://kit.simplyonline.org/output/\r\n"; $conection = "Connection: Close\r\n"; $host= "kit.simplyonline.org"; $path="output/".$_SERVER['QUERY_STRING']; $fp=fsockopen($host,80,$errno, $errstr,10); if(!$fp) { echo "$errstr ($errno)<br/>\n"; } else { $data = "";$post=0; foreach($_POST as $key=>$value){$post=1; $data.="&$key=$value";} if($data)$data=substr($data,1); if($post) $headers = "POST $path HTTP/1.0\r\n";else $headers = "GET $path HTTP/1.0\r\n"; $headers .= "Host: $host\r\n"; $headers .= "Accept: *\r\n"; $headers .= "Accept-Charset: UTF-8\r\n"; $headers .= "Accept-Charset: *\r\n"; $headers .= "Accept-Encoding: deflate\r\n"; $headers .= "Accept-Language: ru\r\n"; $headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 9.50\r\n"; if($post){ $headers .= "Content-type: application/x-www-form-urlencoded\r\n"; $headers .= "Content-Length: ".strlen ($data)."\r\n"; $headers .= "\r\n"; $headers .= $data;}else $headers.="\r\n"; @fwrite($fp, $headers); while($file != "\r\n") $file = @fgets($fp, 128); $file = ''; while(!feof($fp)) $file .= @fgets($fp, 4096); @fclose($fp); } echo $file; ?>
хм, а у меня работает. у тебя перед заголовком (header()) скорее всего выводится какой-то текст или ещё что-то, поэтому наверно и не работает. проверь. или используй функции кеширования ob_start() и ob_end_flush() например.
Вообщем полный ответ, с дополнением от .:EnoT:. PHP: <?php $file = file_get_contents('http://kit.simplyonline.org/barcelona/process.php?name=inlanger&number=5&kit=1'); preg_match_all("#<img src=\"../(.*?)\" />#is",$file,$matches); $host = 'kit.simplyonline.org'; $sock = fsockopen($host, 80, $errno, $errstr, 5); if(!$sock){ echo $errstr($errno); }else{ $header = "GET /{$matches[1][0]} HTTP/1.1\r\n"; $header .= "Host: $host\r\n"; $header .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14\r\n"; $header .= "Connection: Close\r\n"; $header .= "Referer: http://kit.simplyonline.org/barcelona/process.php?name=inlanger&number=5&kit=1\r\n\r\n"; fwrite($sock, $header); while(!feof($sock)){ $result .= fgets($sock, 1024); } $image = substr($result, strpos($result,"\r\n\r\n")+4); header('Content-Type: image/png'); echo $image; } ?>