Я использую Indy (Delphi 2009) для запроса файла .php на моем бесплатном хостинг-сайте. Этот .php читает параметры, предоставленные URL, загружает определенную страницу со стороннего сайта и возвращает источник. Все работает хорошо, но какой-то мусор всегда предшествует полезной информации, которую я загружаю. В Firefox я не вижу ничего из этого.
Delphi часть:
MSource.Lines.Text := IdHTTP1.Get('http://*****.comuv.com/somefile.php?type=upl&id=' + MUsers.Lines.Strings[i]);
.PHP часть:
header('Content-type: text/plain');
...
else if ($_GET['type'] == 'upl')
{
$NextChunkURL = 'http://gdata.youtube.com/feeds/api/users/%UserName%/uploads?start-index=1&max-results=25';
$NextChunkURL = str_replace('%UserName%', $_GET['id'], $NextChunkURL);
$CurChunk = file_get_contents($NextChunkURL);
if ($CurChunk == FALSE)
$CurChunk = 'error downloading [' . $NextChunkURL . ']';
echo $CurChunk;
}
Пример вывода:
User account closed //GARBAGE IS HERE !!! (always present and looks the same to me)
<!-- Hosting24 Analytics Code -->
<script type="text/javascript" src="http://stats.hosting24.com/count.php"></script>
<!-- End Of Analytics Code -->
Код комплекта разработчика Firefox:
<html><head><link rel="alternate stylesheet" type="text/css" href="resource://gre-resources/plaintext.css" title="Переносить длинные строки"></head>
<body><pre>User account closed
<!-- Hosting24 Analytics Code --><script type="text/javascript"src="http://stats.hosting24.com/count.php"></script>
<!-- End Of Analytics Code -->
</pre></body></html>

является #$EF#$BB#$BF
и является UTF-8 BOM, так что это проблема сервера, а не клиента. Только один BOM или ничего не ожидается, но ваш сервер отправляет 4 из них. Просмотр этого сайта в «Комплект разработчика Firefox«Это уже интерпретация, и открытие этого файла в текстовом редакторе, вероятно,« работает »так же хорошо, так как большинство из них интерпретируют его. В качестве встречного доказательства сохраните ваш сайт в Fire Fox в виде HTML и откройте его в шестнадцатеричном редакторе, и вы увидите BOMТак же, как в вашей программе.
Других решений пока нет …