Algunos información sobre Smarty 3 en caso de que si alguien quiere lograr lo mismo en Smarty 3 y no en Smarty 2:
El primero es que es necesario agregar paréntesis para hacer funciona. substr:$bar_at+1
no funcionará, pero substr:($bar_at+1)
funcionará.
Pero, de hecho, puede utilizar la sintaxis más simple:
{assign var="var" value="ABC | DEFGH"}
{$var|substr:($var|strpos:"|"+1)}
esto le dará DEFGH
con espacio al principio (antes y |
son espacios dentro var en su pregunta y en mi ejemplo) y como quiera para conseguir cadena sin espacio que puedes usar en este caso en lugar de +2
+1
:
{$var|substr:($var|strpos:"|"+2)}
Los de arriba se ensayaron en Smarty 3.1.19
.
También debe saber que en versiones anteriores (antes de Smarty 3.1) si tiene en su cadena los caracteres UTF-8, debería usar las funciones mb_
.
A partir de Smarty 3.1 en caso de que se instale la extensión mbstring
Smarty automáticamente usa las funciones mb_
en ese caso para que no haya ningún problema con los caracteres utf-8.
Puede leer más sobre Smarty utf-8 encoding
¿Qué se obtiene como salida? – BoltClock
posible duplicado: http://stackoverflow.com/questions/4325283/smarty-substr-a-variable –
Ver [esto] (http://www.smarty.net/forums/viewtopic.php?p=48137) Smarty tema. –