У меня есть строка как
$str ='my age is 100';
теперь я хочу отделить 100 строк сверху, как я могу это сделать, используя smarty
Я работаю над Prestashop.
Спасибо
Если есть только число, вы можете просто удалить все нечисловые символы из строки с помощью регулярного выражения с regex_replace:
{$str|regex_replace:"/[^0-9]/":""}
Это напечатает 100 для первого примера и 21 для второго. Однако он не будет работать нормально для строк с разными номерами (то есть «у меня 2 коровы и 1 кролик» вернется 21).
Тем не менее, я советую вам не извлекать число из текстовой строки, если вам нужно использовать его в своем коде, так как оно подвержено ошибкам. лучше объявить отдельную переменную, а не
Предполагая, что за числами в строке не следуют или перед ними не стоит запятая, скобки, а только пробелы, вы можете использовать:
{assign var="str" value="my age is 100 Include Couple Name (max 21 letters)"}
{assign var="ar" value= " "|explode:$str}
{foreach $ar as $a}
{if $a|is_numeric}
{append var="numbers" value=$a}
{/if}
{/foreach}
NUMBERS:<br />
{foreach $numbers as $n}
{$n}<br />
{/foreach}
Это даст вывод:
NUMBERS:
100
21
как и ожидалось.