Удаляйте ненужные строки, пока Content-Type: text / plain

Я опишу мою проблему с кодом — это будет лучше всего.

<?
include('configs.php');
require_once 'DBQueries.php';
$con = mysql_connect( $db_host, $db_user, $db_pass );
mysql_query("SET NAMES 'cp1250'") or die('Could not set names');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($db_dbname);
$oUnexportedOrders = DBQueries::getInstance()->getUnexportedOrders();
header("Content-Type: text/plain");
while ($aOrderExport = mysql_fetch_assoc ($oUnexportedOrders)){
echo $aOrderExport['data'];
}

Что происходит:

  1. включить некоторые вещи
  2. подключение к БД
  3. получить данные из БД
  4. ВАЖНО: установить заголовок как Content-Type: text / plain
  5. ВАЖНО: печатать текстовые данные с эхом

Результат:

**!!! There are 7 unwanted lines !!!**
line of data
line of data
line of data
line of data
....

Ожидаемый результат:

line of data
line of data
line of data
line of data

— Ожидаются строки данных, сгенерированные эхом внутри for, но без этих 7 строк.

ВОПРОС:

Как это сделать, как позвонить, когда (и т.д.) избавиться от этих нежелательных линий?

Спасибо.

0

Решение

ob_clean(); очистит выходной буфер в сочетании с ob_start();

<?
ob_start();
include('configs.php');
require_once 'DBQueries.php';
$con = mysql_connect( $db_host, $db_user, $db_pass );
mysql_query("SET NAMES 'cp1250'") or die('Could not set names');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($db_dbname);
$oUnexportedOrders = DBQueries::getInstance()->getUnexportedOrders();
ob_clean();
header("Content-Type: text/plain");
while ($aOrderExport = mysql_fetch_assoc ($oUnexportedOrders)){
echo $aOrderExport['data'];
}

Это должно избавить от любых нежелательных лишних пробелов из включенных файлов.

1

Другие решения

Пустые строки не происходят из таинственного неизвестного. Они где-то в вашем коде. Проверьте свои файлы (включая файлы, которые вы включаете / требуете) на наличие пробелов перед открытием тегов PHP и после закрытия тегов PHP. Этот пробел будет передан в браузер.

0