jgent的magento转义字符串

时间:2011-01-22 22:26:11

标签: php javascript json magento escaping

是否有一个帮助函数可以正确地转义字符串,以引用单引号引用JavaScript字符串文字?

我知道jsQuoteEscape但它只处理引号而不处理\ n& \ r等。

所以如果我的字符串是'line1 \ nlineb'(即两行之间有换行符)

我用

var jsvar='<?php echo $this->helper('myextension')->jsQuoteEscape($mystring); ?>';

我将进入渲染内容

    var jsvar='line1
line2';

这是语法错误。

谢谢, 的Eyal

1 个答案:

答案 0 :(得分:5)

$string = 'Hello
There';                     
var_dump( Mage::helper('core')->jsonEncode($string) );
var_dump( json_encode($string) );

never been clear如果将非对象字符串数据类型编码为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);