#php #ruby-on-rails
#php #ruby-on-rails
Вопрос:
В ruby on Rails у вас есть возможность создавать более чистые и хорошо отформатированные выходные данные:
<div>
<%= 3.times do -%>
<%= "Hello World" -%>
<%= end -%>
</div>
и на выходе будет:
<div>
Hello World
Hello World
Hello World
</div>
Но когда я делаю то же самое в php:
<div>
<?php for ($i =0; $ < 3;$i ): ?>
<?php echo "Hello World" ?>
<?php endfor; ?>
</div>
Я получаю что-то вроде этого:
<div> Hello World
Hello World
Hello World
</div>
есть ли что-то вроде rubys «-%>» в php, которые помогают мне достичь того же?
Комментарии:
1. Это не должно быть критичным, поскольку браузер будет отображать два как идентичные
2. @Mark Baker, вы правы, это не критично, я хотел узнать, есть ли подобный тег, о котором я не знаю в php, и, по-видимому, его нет.
Ответ №1:
Имейте в виду, что PHP является препроцессором, поэтому в основном он просто добавляет некоторые данные к вашим файлам. Это означает, что для достижения правильного «стиля» или «чистоты» в вашем файле вам нужно будет добавить новые строки и т.д. В (случайно) сгенерированный материал.
например, для каждого цикла добавляйте n в конец строки, чтобы он печатал ее в новой строке файла. Если вам нужна вкладка, вы могли бы сделать t и так далее
Ответ №2:
Вы можете использовать HTMLTidy, который поставляется в комплекте с PHP.
Однако вам следует учитывать, что обработка разметки с помощью Tidy может замедлить работу вашего сайта. Если вы должны использовать Tidy, вы должны кэшировать выходные данные из него или включать его только для целей отладки.
Ответ №3:
Не думаю, что это предлагается. Как утверждает @Antwan, вам просто нужно будет добавить свои собственные символы новой строки и табуляции в echo
файлах. Примечание: Не уверен, что существует функция полной проверки для обработки этого, поскольку ваша IDE также повлияет на ваши переводы строк и интервалы.
function echonice($str) {
echo "nt".$str;
}
Ответ №4:
Исправлен код: (выглядит некрасиво, да?)
<div>
<?php for ($i =0; $ < 3;$i ):
echo "ttHello World" ?>
endfor; ?>
</div>
Пробелы между <?php ?>
тегами сохранены, возможно, Ruby делает что-то необычное, чтобы отфильтровать их, PHP в любом случае этого не делает.
Всегда сложно решить, какую часть вы хотите напечатать с помощью PHP, а какую — в родном HTML. В любом случае браузеры не заботятся о пробелах 😉
Ответ №5:
Я буду время от времени делать что-то вроде следующего:
<?php
echo "<html>";
echo " <head>";
echo " </head>";
echo " <body>";
echo " <div>";
echo " $variable";
echo " </div>";
echo " </body>";
echo "</html>";
?>
Где все строки в тексте имеют отступ, чтобы HTML было легче читать. Однако это действительно имеет смысл делать, только если у вас есть много переменных для добавления в ваш HTML. Как кто-то упоминал ранее, браузер не использует отступ для отображения страницы. Единственный раз, когда вам понадобится правильный HTML-отступ, — это если вы ожидаете, что кто-то посмотрит исходный код страницы в своем браузере.