Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите вытащить изображение через сокет, стоит авторизация
 
 автор: himic   (30.07.2008 в 09:37)   письмо автору
 
 

Тащу изображение таким вот макаром, а там каракули, ставлю хеадер. Но изображение битое. Думаю надо почистить заголовок, а вот до каких пор не знаю.

Код
<?
     $fp 
= @fsockopen("10.130.1.127"80$errno$errstr60); 
     if (!
$fp) { 
         return 
false
     } else { 
    
     
$out  "GET http://10.130.1.127/cgi-bin/video.jpg HTTP/1.1\r\n"
     
$out .= "Host: 10.130.1.127\r\n"
     
$out .= "Referer: 10.130.1.127\r\n"
     
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n"
    
$out .= "Authorization: Basic " base64_encode("логин:пароль") . "\r\n"// -&#253;&#242;&#238; &#242;&#232;&#239;&#224; &#224;&#226;&#242;&#238;&#240;&#232;&#231;&#224;&#246;&#232;&#255; 
     
$out .= "Connection: Close\r\n";
     
$out .= "\r\n"


fwrite($fp$out); 
    
/*while (!feof($fp))
    { 
    $buffer .= fgets($fp, 1024);                  
    } */
    
for ($i=0;$i<=300;$i++)
    { 
    
$buffer .= fgets($fp1024);                  
    }
fclose($fp); 

       
//header("Content-type: image/jpeg");                                                      
//echo chop(substr($buffer,strpos($buffer,'close')+5));
echo $buffer;
?>                                                        


Результат

HTTP/1.0 200 OK Content-Type: image/jpeg Date: Sun, 26 Jan 2000 14:57:16 GMT Expires: Thu, 01 Jan 1970 01:00:00 GMT Cache-Control: no-cache Content-Language: en Server: DCS-6620G Connection: close &#9578; рJFIFHH &#9608;Д   (
1#%(:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc//cB8Bccccccccccccccccccccccccccccccc ccccccccccccccccccc &#9472;в  }!1AQa"q2БСб#B&#9618;&#9524;R&#9572;Ё$3brВ %&'()*
:
стуфхцчшщъёЄєЇїЎў°&#8729;·w!1AQaq"2БBСб&#9618;&#9524; #3RЁbr&#9572; $4с%ё&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzВГДЕЖЗИЙКТУФХЦЧШЩЪвгдежзийктуфхцчшщъЄєЇїЎў°&#8729;· &#9492;`" &#9484;?х3KЪ3Eр

Заранее спасибо!

  Ответить  
 
 автор: cheops   (30.07.2008 в 14:22)   письмо автору
 
   для: himic   (30.07.2008 в 09:37)
 

От начала полученной строки ищите два подряд идущих перевода строки \r\n\r\n - это и будет конец HTTP-заголовков.
<?php
  $buffer 
substr($bufferstrpos($buffer"\r\n\r\n"));
?>

  Ответить  
 
 автор: mihdan   (30.07.2008 в 14:53)   письмо автору
 
   для: cheops   (30.07.2008 в 14:22)
 

Либо заюзать cURL

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования