PDA

Просмотр полной версии : PHP сокеты


TRX.new
21.02.2010, 23:00
Получаю через сокеты ответ от сервера.. после http заголовков идет картинка.. Как сделать, чтобы она отображалась по-человечески?!

HTTP/1.1 200 OK Date: Sun, 21 Feb 2010 18:56:43 GMT Content-Type: image/jpeg Transfer-Encoding: chunked Connection: keep-alive Keep-Alive: timeout=5 Server: Apache Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 19 Nov 1981 08:52:00 GMT Set-Cookie: key=a35d7d1eb93a0f2c72b2d044c06cfd57; expires=Sat, 17-Nov-2012 18:56:43 GMT; path=/ Set-Cookie: PHPSESSID=0cc72dd928469d23316366200950c2d0; path=/ Pragma: no-cache 7e4 яШяаJFIFяю;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90 яЫC     яЫC    яА2Z"яД яДµ}!1AQa"q2Ѓ‘Ў#B±БRСр$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzѓ„ †‡?‰Љ’“”•–—˜™љўЈ¤Ґ¦§ ©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФХ ЦЧШЩЪбвгдежзийкстуфхцчшщъ яД яДµw!1AQaq"2ЃB‘Ў±Б #3RрbrС $4б%с&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ѓ„ …†‡?‰Љ’“”•–—˜™љўЈ¤Ґ¦ Ё©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФ ХЦЧШЩЪвгдежзийктуфхцчшщъя Ъ ?э(ўЉ(ў±јSвэ'Бљk_jч±ЩА8]зжsУ :“Ий^ гпЪcЕ:m±јРј#<:hд]jQ‘ёx.AЗ?ЕСГ/Ю?»VoNЊкь(ъJ№}kЗVє_Ќь=б„Ы5ю©зH ˜ЎHќ·‘оБT~>•Вь+шгuгЇ^jзM’уT‚QYЫ/3H~ифQћ¤р'5зЋҐ}с§З.с]вОtVЋYСі y(џмЄ«Ље©ЋЊЅ—±ЧќпЩnяНcA®n~џ кћ#Рн~-шзSРµ’OhpFіБm]К7тqС/~Їн\gЂјAв‡яЌј gЮ#—JЮйK7О`ђ®Ws‹ёqџZояgхљыА ЇЮ(ЪэЬЪњД¶зbэ……q^Х “гЯДя3lУґM9-$˜ћ*‚Гйы¶ьEsОПЩWNТ›zяu¦яo™ў Pz¤їЇМЪэќю(kЯ®µZҐ•МPCl«Џ)°ы Б=ъ/д}kЩkЖяe}[†уkW1„№ЧЇ¦Ф?є[~aЏг^Й]ш7†„Є;·ЇЯ©П_•U’ЉІ (ў»Оp¬ПxЉЛВ^Ф5ќFO*ККљCђ p«’bpП$ЃЮґлЕїk№х~ ]*‰o.KёVи*М –зЋхC‘йЋ„Ч6&«ЎFuRЩ6kJТj/©В/]ьLј?>,S3Н+'Oqы«X‡ЂоN?мжЅCЗЪ}ѕЈаќjЪt ZI•нВ’*џВ}JЗUшqблЌ;oЩMњjЎ{0sпђ jЗД«‘iряД2“Ђ¶2зиTѓXR§xkпuvыиi9 9U¶Цg„~Нwсxа?‰HжћdЖv( у’§Ѕ`ЯA{аЯЩ7QФЯwцЇЉ®ьы№6ьЫ%~ sмUOэчWјqрпмЌбэ:0cmBHD*РќТ—9ь0+и aаЅ+Yр5†Ѓ©ZGw§Ґ¤0˜њq…PтЇЋU`ЁE Жџг/шcІu%ОъЛрG–ГсЯ@р‡Б‹ tyЈФuKM1,гдDКЂn”Ѓ…З\$c“\>ЎбнCАЯіН†ЋыЫЕ9Ф"YЫюZ4†*ЯрѓоЖ»vшuбяшОЫВѕТ-l<% О·zМ°'ь}ЭЃ˜*Лћ_h;›$хЉwЕ=JЗVэ >iM{ Kgёєx„ѓ@?wџC” u#RPrЁЦ–‚¶Ъґ¤ЧечЉ.*VЉюущjЏgР4h<;Ўйъ]°ЕЅ” nњc!T эN*эWУ$ў¬Џ1»кВЉ(¦ Єє¦—i*iчЦйugp†9a”e]OµE&“Va±вZ'Гя|ї№o "шџВ™_CљQЭ±=L.~Vt$~|Ц·ЌьEЁьAРГ :g‡u‹+ќL®n5 S V‘dbЩГt њюµкфWВ(ЕУ„љ‹йю]ї«ы[ѕi-OшХрчTсЏ‚tпшN;бh5©Q-ЎXсч°K–>Љ‡ї5ЩШи~*ёрФ:†µecwІ8е›MµfeP¤8G wЖвvђЕ8зе$‚:к*Ц Ј©wv*т^„є*ЕG±›бЯiЮТўУґ»amiHPK 319ff<іЙ$дХ[яшoTbЧє™vЕ·–ћО7;іњдЋ№п[”WGі…”mЎОч№ ќ¤VСЫАҐ!ЊmE,[У'љљЉ*цСQEQEQEQEQEQEQEяЩ 0

Dr1ver
21.02.2010, 23:04
gifts ответил прально

TRX.new
21.02.2010, 23:16
обреж заголовок, и функцией image выводи
Что за функция image() ?? не могу в документации такую найти..

Gifts
21.02.2010, 23:37
TRX.new Никакого вывода на экран не должно быть, тогда браузер правильно покажет изображение $in = ''; // в этой переменной хранится текст изображение из первого поста
list(, $val) = explode("\r\n\r\n", $in, 2);
header('Content-Type: image/jpeg');
echo $val;

При желании можно сохранить переменную $val в файл с расширением .jpg

TRX.new
22.02.2010, 00:07
Не отображает.. просто выводит название файла скрипта... Вот код:

function socks_connect($host, $port, $dh, $dp)
{
$result=true;
$f = fsockopen($host, $port, $errno, $errstr, 10) or $result=false;
if($result)
{
$h = gethostbyname($dh);
preg_match("#(\d+)\.(\d+)\.(\d+)\.(\d+)#", $h, $m);
fwrite($f, "\x05\x01\x00");
$r = fread($f, 2);
if(!(ord($r[0])==5 and ord($r[1])==0)) $result=false;
if($result)
{
fwrite($f, "\x05\x01\x00\x01" . chr($m[1]).chr($m[2]).chr($m[3]).chr($m[4]).chr($dp/256).chr($dp%256));
$r = fread($f, 10);
if(!(ord($r[0])==5 and ord($r[1])==0))
return false;
else
return $f;
}
}
}
$fpion = fopen('proxy.txt', 'rt');
if ($fpion) {
while (!feof($fpion)) {
$taken = fgets($fpion,4096);
list ($proxyhost, $proxyport) = split(':',$taken);
@set_time_limit(0);
$fp = socks_connect("$proxyhost","$proxyport",'site.com',80);
if (!$fp) {
//echo $proxyhost.':'.$proxyport.' ---> FALSE '.$status."<br>";
} else {
$query = "GET /captcha.php HTTP/1.1\r\n";
$query .= "Host: site.com\r\n";
$query .= "Connection: Close\r\n";
$query .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6\r\n";
$query .= "Accept: image/png,image/*;q=0.8,*/*;q=0.5\r\n";
$query .= "Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n";
$query .= "Accept-Encoding: gzip,deflate\r\n";
$query .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
$query .= "Keep-Alive: 115\r\n";
$query .= "Connection: keep-alive";
$query .= "Referer: http://site.com/contest/id-260/\r\n";
$query .= "Cache-Control: max-age=0\r\n\r\n";
fwrite($fp, $query);
$page = '';
while (!feof($fp)) {
$page .= fgets($fp, 4096);
//echo $proxyhost.':'.$proxyport.' ---> OK '."<br>";
}
}
}
}
$in = $page; // в этой переменной хранится текст изображение из первого поста
list(, $val) = explode("\r\n\r\n", $in, 2);
header('Content-Type: image/jpeg');
echo $val;

Dr1ver
22.02.2010, 00:19
%%