Cистема управления сайтом

Оператор replace

Оператор replace производит текстовую замену при обращении к указанным полям документов.

Синтаксис:

<replace from=expr to=expr [fields=expr]>djemscript</replace>

где,

Параметр

Описание

from

строка – признак начала строки для замены

to

строка – признак окончания строки для замены

fields

список полей (через запятую), в которых необходимо производить замену. Если не указан, то оператор оказывает действие на все поля в документе.

 

Оператор replace находит строки, начинающиеся со строки from и заканчивающийся строкой to и вырезает текст между ними. Внутри блока замены можно использовать переменную _match_ для обращения к содержимому вырезанного куска – <var[_match_]>. К данной переменной можно применять любые методы DJEM-скрипта.

Пример:

<replace from="[u]" to="[/u]"><var[_match_].ucase></replace>

при обработке поля с содержимым:

Это проверка [u]корректной[/u] работы скрипта

Результат:

Это проверка КОРРЕКТНОЙ работы скрипта.

Можно использовать оператор replace с указанием одного лишь параметра from — в этом случае будут заменены все найденные подстроки, совпадающие с указанным в параметре from значением.

Пример:

<replace from="р">!</replace>

при обработке поля с содержимым:

Это проверка [u]корректной[/u] работы скрипта

Результат:

Это п!ове!ка [u]ко!!ектной[/u] !аботы ск!ипта

Пример:

Замена только в определенных полях, в данном случае _url

<replace from="/index.phtml" fields="_url">/</replace>

Замена в нескольких полях

<replace from="old" fields="_name,anons,text">NEW!</replace>

Возможно и использование вообще без параметров from и to — такой прием позволяет наложить на все поле сразу обработку каким-нибудь методом или методами. Например, если хочется все текстовые поля _name, intro и text обработать, скажем, методом format(«rus») для правильного типографского вывода текста, можно написать

<replace fields="_name,intro,text"><var[_match_].format("rus")></replace>

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

 

В случае использования  в поле from регулярного выражения

<replace from='/<a[^>]*>(.*?)<\\/a>/uisg'>
<var[_match_]> {{ найденное совпадение не сохраняется сюда }}
$0
{{ - найденное совпадение  будет доступно так }}
$0
{{ - все совпадение}}
$1
{{- первое совпадение и тд. }}
</replace>

Смотри так же метод replace

Поиск по документации

О компании  |  Партнёрам

© 2005 — 2024 DJEM Solutions, все права защищены. | Дизайн — Студия Fractalla