Как заменить вкладку на & nbsp; в PHP?
В моей базе данных у меня есть следующий текст:
for x in values:
print x
Я хочу напечатать этот код на моей странице HTML. Он печатается PHP в HTML-файл, как он есть. Но когда HTML отображается браузером, я, конечно, не вижу текст в этой форме. Я вижу следующее:
for x in values: print x
Я частично решил проблему nl2br
Я также использую str_replace(' ',' ',$str)
, В результате я получил:
for x in values:
print x
Но мне все еще нужно сместить print x
направо. Я думал, что смогу решить проблему str_replace('\t',' ',$str)
, Но я узнал, что str_replace
не распознает пространство перед печатью как '\t'. Это пространство также не признается просто пространством. Другими словами, я не получаю никаких
перед print
,
Зачем? И как можно решить проблему?
4 ответа
Цитировать текст в двойных кавычках, вот так
str_replace("\t", ' ', $str);
PHP будет интерпретировать специальные символы в строках с двойными кавычками, в то время как в строках с одинарными кавычками он просто покинет строку, за исключением \'
,
Старый и устаревший ответ:
Скопируйте символ табуляции (" ") из блокнота, строки базы данных или этого сообщения и добавьте этот код:
str_replace(' ',' ',$str);
(это не четыре пробела, это символ табуляции, который вы скопировали из блокнота)
Вам нужно разместить \t
в двойных кавычках это должно быть интерпретировано как символ табуляции. Строки в одинарных кавычках не интерпретируются.
Всегда используйте двойные кавычки при использовании \t \n и т. д.
Это может быть сложно, потому что вкладки на самом деле не имеют фиксированного размера, и вам придется рассчитывать остановки вкладок. Это может быть проще, если вы печатаете пустое пространство как есть и поручаете браузеру отобразить его. Ты можешь использовать <pre>
теги:
<pre>for x in values:
print x</pre>
... или установить white-space
CSS свойство:
div.code{
white-space: pre-wrap
}
(Как отмечают другие, '\t'
отличается от "\t"
в PHP.)