Intereting Posts
Процесс FastCGI превысил настроенный тайм-аут активности Symfony2, Как изменить среду? Когда использовать подготовленные запросы PDO. Ошибка mysql_real_escape Выпадающий список, где параметры заполняют второй список js / php? Как я могу проверить действительные (не мертвые) ссылки программным образом с помощью PHP? Как установить colspan динамически с помощью jquery? PHP: Icecast Now Playing Script не работает Запрос порядка запросов MySQL по значению в столбце JSON PHP встроен в сервер и переписывает мод .htaccess Получить номер недели (в год) с даты PHP Как я могу кодировать HTML-код всего вывода в веб-приложении? PHP разные односторонние хэши для защиты паролем PDO :: beginTransaction () вызывает блокировку таблицы или строки до PDO :: commit ()? Как выбрать раскрывающийся список, вставив значение в текстовое поле Получить подсказки параметров для моих собственных функций PHP в Notepad ++

С помощью regex заменить систему шаблонов smarty?

Вот что я имею в моем шаблоне Smarty:

<div class="tbl_pagination"> {if $pager}{$pager->links}{/if} <div> 

Мои {$pager->links} этот HTML- {$pager->links} :

 <div class="tbl_pagination"> <ul><li><a href="javascript:toPage(3)" title="previous page">Back</a></li> <li><a href="javascript:toPage(1)" title="page 1">1</a></li> <li><a href="javascript:toPage(2)" title="page 2">2</a></li> <li><a href="javascript:toPage(3)" title="page 3">3</a></li> <li class='active'>4</li> <li><a href="javascript:toPage(5)" title="page 5">5</a></li> <li><a href="javascript:toPage(6)" title="page 6">6</a></li> <li><a href="javascript:toPage(7)" title="page 7">7</a></li> <li><a href="javascript:toPage(5)" title="next page">Next</a></li> </ul></div> </div> 

Я пытаюсь заменить две разные вещи:

  1. Я хочу завершить удаление атрибута the title .

  2. В зависимости от того, у кого есть класс, необходимо иметь a href .

Вот что мне хотелось бы выглядеть так:

 <div class="tbl_pagination"> <ul><li><a href="javascript:toPage(3)">Back</a></li> <li><a href="javascript:toPage(1)">1</a></li> <li><a href="javascript:toPage(2)">2</a></li> <li><a href="javascript:toPage(3)">3</a></li> <li class='active'><a href="#">4</a></li> <li><a href="javascript:toPage(5)">5</a></li> <li><a href="javascript:toPage(6)">6</a></li> <li><a href="javascript:toPage(7)">7</a></li> <li><a href="javascript:toPage(5)">Next</a></li> </ul></div> </div> 

Можно ли это сделать в системе шаблонов Smarty с помощью функции замены?

Solutions Collecting From Web of "С помощью regex заменить систему шаблонов smarty?"

Поскольку вы упомянули в своих комментариях, что вы достигли (2) самостоятельно, вот решение для первой замены, с помощью двух методов:

  1. Вы можете использовать regex_replace :

    {$pager->links|regex_replace:'/title="[\w\s]+"/':""}

  2. Кроме того, вы можете напрямую использовать preg_replace php, например:

    {'/title="[\w\s]+"/'|preg_replace:'':$pager->links}

Сначала это может показаться странным, но позвольте мне объяснить синтаксис:

Smarty поддерживает передачу переменной / string некоторой функции php с помощью | (трубы). Тем не менее, дополнительные параметры затем передаются с параметром : (двоеточие). Это согласовано для синтаксиса модификаторов переменных

Например, если вы хотите подсчитать буквы в строке, вы должны:

 {$pager->links|strlen} 

И если вы хотите узнать, находится ли значение foo в массиве $bar вы бы сделали:

 {'foo'|in_array:$bar} 

так что для php-функции, которая выглядит как func($arg1, $arg2, $arg3) , это означает {$arg1|func:$arg2:$arg3}

Излишне говорить, что предпочтительный метод (1), я предложил только 2-й, потому что, на мой взгляд, интересно знать.