Есть ли вспомогательная функция, которая будет правильно удалять строку, которая будет отображаться в виде одиночной цитаты, цитируемой строкой буква Java?
Я знаю jsQuoteEscape, но он обрабатывает только кавычки и не обрабатывает \ n & \ r и т. Д.
поэтому, если моя строка является «line1 \ nlineb» (т.е. две строки с новой линией между ними)
и я использую
var jsvar='<?php echo $this->helper('myextension')->jsQuoteEscape($mystring); ?>';
Я попаду в предоставленный контент
var jsvar='line1 line2';
который является синтаксической ошибкой.
Спасибо, Эйял
да
$string = 'Hello There'; var_dump( Mage::helper('core')->jsonEncode($string) ); var_dump( json_encode($string) );
Я никогда не был ясен, если эта кодировка типов объектов, не относящихся к объектной строке, как строка javascript, является побочным эффектом кодирования JSON, или, если это правда, согласно Hoyle Crockford JSON, поэтому мне всегда нравится обматывать мои строки в объект при их прохождении
$o = new stdClass(); $o->param = 'This is my Param'; $json = json_encode($o); echo 'var data = ' . $json . ';' . "\n"; echo 'var jsdata = data.param';
Вот как вы справитесь с этим с помощью javascript. Для этого не существует метода, специально созданного для этого. Если вам интересно узнать, какие вспомогательные методы у вас есть в блоке, ознакомьтесь с методами в
app/code/core/Mage/Core/Block/Abstract.php app/code/core/Mage/Core/Block/Template.php
и если вы имеете дело с шаблоном, который является частью блока выше цепи, получите его класс, а затем проверьте его определение
var_dump get_class($this);