2016-12-08 11 views
0

ПОЧТИ найдено решение hereСравните слова в TPL файле Prestashop Smarty (символы кириллицы)

Но, как я могу понять это {if $haystack1|strstr:"_thestring_"}Found!{/if}не работает с не латинскими символами ...

Проблема: мне нужно проверить, если строка '' существуют терминалы в переменной $ payment_method.desc Вот это код Smarty

(The Variable **$payment_method.desc** contain this text 'Оплата наличными через кассы и терминалы'):

{assign "desc" $payment_method.desc} 
{assign "var_1" "терминалы"} 
{if $desc|@mb_stristr:$var_1|@var_dump}Found!{/if} 
{if $desc|@mb_strstr:$var_1|@var_dump}Found!{/if} 
{if $desc|@strstr:$var_1|@var_dump}Found!{/if} 

Такой же код работает, если используется латинские символы.

+0

Здравствуйте. Вы решили эту проблему? Помог ли вам ответ? С уважением – PixelWeb

+0

Nop не решен ... на данный момент я использую грязный хак, используя латинские символы, похожие на кириллицу. Я сравниваю только часть слова «терминалы», поэтому «терм» - это те же буквы в латинском языке ... – qant

ответ

1

Объявление Smarty var использует внутреннюю кодировку PHP.

Вы должны проверить последний параметр mb_* функций, связанных с кодированием. Проверьте это: mb_strstr

Это сообщение может помочь вам тоже: php case-insensitive comparison of russian characters

Если вы уверены, что строка имеет русские символы, которые Вы должны рассмотреть преобразование из «Windows-1251» кодирования.

Любая функция PHP может быть вызвана из Smarty, поэтому вы можете протестировать их все.

Удачи.

+0

Я проверяю, как я могу попробовать передать другой параметр функции Smarty, если это возможно. Русский выглядит хорошо в формате utf-8, поэтому я не думаю, что конвертировать в конвертер из «Windows-1251» поможет ... – qant

+0

Вы можете передать более одного параметра функции smarty, используя следующее: {$ value | escape: 'htmlall ':' UTF-8' }. Русский, может быть, «выглядит» хорошо, но при сравнении символов не совпадают. – PixelWeb

+0

Я пробую эту часть от начала, {$ var: 'htmlall': 'UTF-8'} ... и ее не поможет. – qant

 Смежные вопросы

  • Нет связанных вопросов^_^