Дополнительный пробел, при выводе HTML, на PHP MVC - PullRequest
1 голос
/ 30 апреля 2010

Я получаю дополнительные пробелы, это не CSS, или ничего похожего на вывод представления: HTML.

Я проверил на ?> (удален, где мог), сохранил UTF8 без спецификации. Проверяется наличие пробелов в начале каждого файла, даже в конце.

Это структура:

index.php - this is the entry point;
MODEL/
CONTROLLER/
VIEW/

Предположим, что метод GET отправляет переменную TPL с некоторым значением. Давайте назовем его LIST, поэтому он извлекает модель LIST со всеми данными, а затем показывает пользователю правильный шаблон с правильными данными.

Я использовал и тестировал с require_once, include_once, include, даже тестировал с readfile (просто для тестирования). Шаблон LIST открывает header.tpl и footer.tpl; Я также попытался удалить оба этих элемента из шаблона LIST, но дополнительный пробел продолжился.

Вот откуда появляется дополнительное пустое пространство. Этот контроллер находится между <body> controller activity runs here </body>, отсюда и появляется дополнительный пробел:

$model_works->getRows();

$rows = $model_works->rows;

if ( !require_once('views/list_works.tpl.php') ) {

echo "<p>Error.</p>";

} // end if clause

list_works.tpl.php, в основном, HTML с тегами; Я протестировал, изменив расширение на что-то еще, например, html.

Кроме того, просто чтобы помнить, что в верхней части этого файла мы используем require_once, чтобы открыть header.tpl, а внизу footer.tpl. Я протестировал, удалив оба, и дополнительное пустое пространство все еще было сгенерировано.

Здесь создается дополнительный пробел:

<body>
# EXTRA WHITE SPACE HERE #
<!-- some stuff working fine -->
</body>  

Большое спасибо за поиск, ; D * * тысяча двадцать пять

Ответы [ 3 ]

1 голос
/ 16 февраля 2012

Попробуйте открыть файл в низкоуровневом текстовом редакторе, таком как MS-Dos Edit. Вы можете обнаружить, что некоторые управляющие байты удаляют его, и все будет в порядке.

1 голос
/ 03 мая 2012

У меня была такая же проблема, когда при использовании require получил пробел в начале тела, до остальной части документа. Мое решение было довольно простым:

<!--Dummy HTML comment<? require something.php ?>-->

Таким образом, пустое место в комментарии и не отображается. Проблема в том, что любой возврат из требуемого файла также находится внутри комментария, поэтому вы можете поместить этот возврат в функцию в требуемом файле и вызвать его из собственного файла, чтобы, наконец, получить данные и поместить их в любое место. У моего сервера apache нет проблем с чтением кода PHP внутри комментария HTML, но я не уверен, что это будет работать в любом другом месте.

0 голосов
/ 30 апреля 2010

Дополнительный разрыв строки в одном из ваших файлов, случайное эхо, продолжайте комментировать, пока не найдете его?

...