(PHP 5.3.6)
У меня есть php-файл, который содержит просто этот текст - нигде нет тегов php, нет завершающего символа новой строки или лишних пробелов:
<div style="border:1px solid green">abc</div>
Теперь добавим это из другого php-файла следующим образом (опять же, без каких-либо посторонних пробелов):
<div style="border:1px solid red"><?php include "abc.php" ?></div>
<br />
<div style="border:1px solid red"><div style="border:1px solid green">abc</div></div>
Я получаю результат ниже.
![](https://i.stack.imgur.com/pw9ok.png)
Обратите внимание, что второй метод просто использует включенный контент напрямую. Оба они должны быть похожи на нижний, но, как вы можете видеть, включение приводит к добавлению некоторого странного вида новой строки перед содержимым включаемого файла. Я говорю «странно», потому что когда я проверяю выводимый источник (через источник просмотра Chrome), там ничего не видно:
![enter image description here](https://i.stack.imgur.com/prNM4.png)
Когда этот раздел страницы отображается в инспекторе элементов Chrome, кажется, что-то там есть, но что именно, я не могу сказать:
![enter image description here](https://i.stack.imgur.com/MYRGP.png)
Кажется, что это просто пустая строка, но почему пустая строка вызывает переводы строки и почему она будет там в первую очередь, остается загадкой. Добавление точки с запятой в конец оператора include не имеет значения. Мне пришло в голову, что это может быть нулевой байт или 13 (CR), но это все равно не должно вызывать разрыв строки HTML.
Кто-нибудь знает, как мне избавиться от этого нежелательного перевода строки?