Удаление пробелов из умных шаблонов из PHP - PullRequest
2 голосов
/ 24 августа 2010

Есть ли способ сообщить Smarty из PHP, что вы хотите удалить все пробелы в ваших шаблонах перед отправкой в ​​браузер, как если бы все ваши шаблоны были встроены в теги {strip}?Какой-то параметр объекта Smarty или что-то еще?

Ответы [ 4 ]

2 голосов
/ 26 августа 2010

В вашей папке плагинов Smarty есть фильтр, который можно легко адаптировать к задаче: это outputfilter.trimwhitespace.php.

Просто добавьте строку

$source = preg_replace("`\s+`ms", " ", $source); 

(из сообщения на форуме, связанного Мартином) в строке 51, а затем вызовите фильтр вывода.

Преимущество состоит в том, что указанный фильтр хорошо сохраняет и затем восстанавливает блоки кода, в которых вы можете оставить только один пробел - внутри script , pre и элементы textarea (я бы тоже добавил в список элемент code ).

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

Вот самая последняя реализация выходного фильтра trimWhitespace из smarty 3.1, которая, кажется, делает то, что вам нужно.

необработанный файл: http://smarty -php.googlecode.com / svn-history / r4136 / branch / Smarty_3_1_cleanup / distribution / libs / plugins / outputfilter.trimwhitespace.php

исходный браузер: http://code.google.com/p/smarty-php/source/browse/branches/Smarty_3_1_cleanup/distribution/libs/plugins/outputfilter.trimwhitespace.php?r=4136

0 голосов
/ 25 августа 2010

Вот еще один выходной фильтр для удаления пробелов.

http://www.smarty.net/forums/viewtopic.php?t=25&sid=26a10d55ac90d50dca7914e33fdc6fa1

0 голосов
/ 24 августа 2010

Вы можете создать и зарегистрировать выходной фильтр , чтобы сделать это;в выходном фильтре вы можете использовать, например, эту функцию для удаления ненужных пробелов.

...