Задать вопрос
@AlexRudkowskij
Студент

Как сохранить отступы при замене текста?

Здравствуйте!
Появилась такая проблема: имеется некий кусок текста, например:
<div>
     {{ include="file" }}
</div>

В этом куске {{ include="file" }} должно замениться на подгруженный текст. Всё работает, но текст заменяется некорректно:
<div>
     <h1>
    {{ lastNews.title }}
</h1>
</div>

А должно быть:
<div>
     <h1>
         {{ lastNews.title }}
     </h1>
</div>

Как видно, отступы не сохраняются. Замену пробовал делать с помощью str_replace и preg_replace. Как можно решить такую проблему?
  • Вопрос задан
  • 2460 просмотров
Подписаться 1 Оценить 5 комментариев
Пригласить эксперта
Ответы на вопрос 2
@Alcospb
Регулярку бы увидеть.
Ответ написан
viktorvsk
@viktorvsk
Хм, а что вы ожидаете?
У вас {{ inlucde='file' }} имеет отступ в один таб. Его и получайте в результате (который вас не устраивает) перед первым h1.
h1 и latest_news наравне, потому что h1 получил отступ от первоначального шаблон. а latest_news - видимо, в файле тоже имеет 1 таб отступа.
И, в завершении, закрывающийся h1 не имеет отступа, как в файле откуда он взят, так и в файле куда он вставлен.

Вывод: все вставляется так, как и должно.

Вы хотите, что б вставляемый файл учитывал отступы родителя? Плюс, наверное, хочется, что б была произвольная вложенность ?

Во-первых, это не реализуется одной регуляркой. Во-вторых, это уже вы делаете работу, которую шаблонизатор делать не должен - вмешиваетесь в данные. Кто сказал, что пробелы и табы - незначимая часть текста?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы