Забавная функция в Smarty.

WP

^_^
Забавная функция в Smarty.

/plugins/modifier.escape.php:
PHP:
//...
        case 'quotes':
            // escape unescaped single quotes
            return preg_replace("%(?<!\\\\)'%", "\\'", $string);
//...
Жуть какая.. таким образом если надо передать строку \' она так и оставит. Например сейчас, мне нужно передать имя пользователя из PHP в JS. Т.е. username = '{$username|escape:'quotes'}', если регнуть юзера a\'a, получился бы ой. Пришлось сделать
PHP:
function smarty_modifier_addslashes($string) {return addslashes($string);}
 

Яро

бард-скальд
Я сейчас, опять же, сонно, видимо ошибусь, но, имхо, по спецификации (x)HTML, значения атрибутов ограничиваются двойными кавычками, то есть ", а escape для них, в частности, и существует, а вовсе не для JS строк.
 

Mayhem

Новичок
Re: Забавная функция в Smarty.

Автор оригинала: WP
PHP:
function smarty_modifier_addslashes($string) {return addslashes($string);}
это вообще бессмысленно... в смарти можно использовать функции пхп как модификаторы не определяя их.. короче |addslashes и так обработается.

А escape:"quotes" в смарти действительно забавно реализован :)
 
Сверху