Некоторая информация о Smarty 3 в случае, если кто-то хочет добиться того же в Smarty 3, а не в Smarty 2:
Во-первых, вам нужно добавить скобки, чтобы это работало. substr:$bar_at+1
не будет работать, но substr:($bar_at+1)
будет работать.
Но на самом деле вы можете использовать более простой синтаксис:
{assign var="var" value="ABC | DEFGH"}
{$var|substr:($var|strpos:"|"+1)}
Это даст вам DEFGH
с пробелом в начале (до и |
- пробелы внутри var в вашем вопросе и в моем примере), и поскольку вы хотите получить строку без пробела, вы должны использовать в этом случае +2
вместо +1
:
{$var|substr:($var|strpos:"|"+2)}
Те, что выше, были проверены в Smarty 3.1.19
.
Вы также должны знать, что в предыдущих версиях (до Smarty 3.1), если в вашей строке были символы UTF-8, вам лучше использовать mb_
функции.
Начиная с Smarty 3.1, если установлено расширение mbstring
, в этом случае Smarty автоматически использует функции mb_
, поэтому проблем с символами utf-8 не возникнет.
Подробнее о Smarty utf-8 кодировка