- Код: Выделить всё
$Url .= "x=".$X."&y=".$Y."&z=".$Z;
$MIMEType = "image/jpg";
$CookieStr = '';
$ErrStr = '';
$host = '127.0.0.1';
$port = 8081;
// подготавливаем запрос
$request = "GET " . "/jpegfile?db=earth&ver=0&date=0&x=" . $X . "&y=" . $Y . "&z=" . $Z . " HTTP/1.1\r\n".
"Host: " . $host . "\r\n".
"User-Agent: Mozilla/5.0 Firefox/3.6.12\r\n".
"Accept: image/jpg\r\n".
"Connection: Close\r\n\r\n";
// открываем сокет
if (($fp = @fsockopen($host, $port, $errno, $errstr)) == false) {
$DownloadResult = 2; // ErrorInternetOpen
$ErrStr = 'fsockopen error '.$errno; // Заменяет стандартное сообщение об ошибке на тайле
die;
}
// устанавливаем тайм-аут соединения
stream_set_timeout($fp, 0, 30*1000);
// отправляем запрос серверу
fputs($fp, $request);
// забираем ответ от сервера
$response = '';
while ($line = fgets($fp))
$response .= $line;
// закрываем соединение
fclose($fp);
// анализируем ответ
$response_size = strlen($response);
if (($body_start_pos = strpos($response, "\r\n\r\n")) == false){
$DownloadResult = 6; //DownloadError
$ErrStr = 'DownloadError';
die;
}
$body_start_pos = strpos($response, "\r\n\r\n");
$body_start_pos = $body_start_pos + 4;
$head = substr($response, 0, $response_size - $body_start_pos);
$body = substr($response, $body_start_pos);
if ($body != '') {
$DownloadResult = 0; //OK
print $body;
}
else {
$DownloadResult = 7; //TileNotExists
$ErrStr = 'TileNotExists ';
}
P.S. Я ведь почему просил кого-нибудь сделать мне скрипт для тестов - чтоб быть уверенным, что ошибок на стороне php не будет. Сам я с php знаком очень отдалённо.
P.P.S. Да, и не считая этих 2-х байт в конце тела тайла (которые особо не мешают SAS нормального его отображать), с прикручиванием php с большего закончено. Так что, желающие могут начинать писать скрипты под конкретные сервисы, мешающие жить своим баном