Сохраняйте пустое пространство с помощью htmlentities

В настоящее время это мой код

$str = file_get_contents($sFile);
echo nl2br(htmlentities($str));

Как сохранить пробелы (табуляцию и несколько пробелов) в файлах при их выводе?

Пример ввода:

if(a==b){
  code   
    more code 
}

Должен выводить именно это (с применением htmlentities), но в настоящее время выводит

if(a==b){
code
more code
}

Как сохранить пробел?


person mcky    schedule 02.05.2016    source источник
comment
Браузер автоматически свернет/преобразует символы пробела в один пробел. Вы можете обернуть текст в элемент ‹pre›‹/pre›   -  person    schedule 02.05.2016


Ответы (2)


Оберните вывод в теги <pre>...</pre>:

<pre>
if(a==b){
  code   
    more code 
}
</pre>

Браузеры игнорируют лишние пробелы, поэтому вы должны указать ему не игнорировать их.

person Sverri M. Olsen    schedule 02.05.2016

Вы можете использовать html-объект для пространства, чтобы сохранить пространство:

echo str_replace([' ', "\t"], ['&nbsp;', '&nbsp;&nbsp;'], nl2br(htmlentities($str)));

person Rauli Rajande    schedule 12.10.2020