Yii Framework v1.1.10 绫诲弬鑰

CJavaScript

system.web.helpers
缁ф壙 class CJavaScript
婧愯嚜 1.0
鐗堟湰 $Id: CJavaScript.php 2799 2011-01-01 19:31:13Z qiang.xue $
婧愮爜 framework/web/helpers/CJavaScript.php
CJavaScript 鏄竴涓寘鍚獼avaScript鐩稿叧澶勭悊鍑芥暟鐨勫姪鎵嬬被銆

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
encode() 灏嗕竴涓狿HP鍙橀噺缂栫爜鎴恓avascript琛ㄧず銆 CJavaScript
jsonDecode() 瑙g爜涓涓狫SON褰㈠紡鐨勫瓧绗︿覆銆 CJavaScript
jsonEncode() 杩斿洖JSON褰㈠紡鐨凱HP鏁版嵁銆 CJavaScript
quote() 寮曠敤涓涓猨avascript瀛楃涓层 CJavaScript

鏂规硶璇︾粏

encode() 鏂规硶
public static string encode(mixed $value)
$value mixed 灏嗚缂栫爜鐨凱HP鍙橀噺
{return} string 缂栫爜鍚庣殑瀛楃涓
婧愮爜锛 framework/web/helpers/CJavaScript.php#54 (鏄剧ず)
public static function encode($value)
{
    if(
is_string($value))
    {
        if(
strpos($value,'js:')===0)
            return 
substr($value,3);
        else
            return 
"'".self::quote($value)."'";
    }
    else if(
$value===null)
        return 
'null';
    else if(
is_bool($value))
        return 
$value?'true':'false';
    else if(
is_integer($value))
        return 
"$value";
    else if(
is_float($value))
    {
        if(
$value===-INF)
            return 
'Number.NEGATIVE_INFINITY';
        else if(
$value===INF)
            return 
'Number.POSITIVE_INFINITY';
        else
            return 
rtrim(sprintf('%.16F',$value),'0');  // locale-independent representation
    
}
    else if(
is_object($value))
        return 
self::encode(get_object_vars($value));
    else if(
is_array($value))
    {
        
$es=array();
        if((
$n=count($value))>&& array_keys($value)!==range(0,$n-1))
        {
            foreach(
$value as $k=>$v)
                
$es[]="'".self::quote($k)."':".self::encode($v);
            return 
'{'.implode(',',$es).'}';
        }
        else
        {
            foreach(
$value as $v)
                
$es[]=self::encode($v);
            return 
'['.implode(',',$es).']';
        }
    }
    else
        return 
'';
}

灏嗕竴涓狿HP鍙橀噺缂栫爜鎴恓avascript琛ㄧず銆

渚嬪锛

$options=array('key1'=>true,'key2'=>123,'key3'=>'value');
echo CJavaScript::encode($options);
// The following javascript code would be generated:
// {'key1':true,'key2':123,'key3':'value'}


瀵逛簬楂樺害澶嶆潅鐨勬暟鎹粨鏋勪娇鐢jsonEncodejsonDecode 鏉ュ簭鍒楀寲鍜屽弽搴忓垪鍖栥

jsonDecode() 鏂规硶
public static mixed jsonDecode(string $data, boolean $useArray=true)
$data string 灏嗚琚В鐮佺殑鏁版嵁
$useArray boolean 鏄惁浣跨敤鍏宠仈鏁扮粍鏉ヨ〃绀哄璞$殑鏁版嵁
{return} mixed 琚В鐮佺殑PHP鏁版嵁
婧愮爜锛 framework/web/helpers/CJavaScript.php#116 (鏄剧ず)
public static function jsonDecode($data,$useArray=true)
{
    return 
CJSON::decode($data,$useArray);
}

瑙g爜涓涓狫SON褰㈠紡鐨勫瓧绗︿覆銆

jsonEncode() 鏂规硶
public static string jsonEncode(mixed $data)
$data mixed 灏嗚缂栫爜鐨勬暟鎹
{return} string JSON褰㈠紡鐨凱HP鏁版嵁銆
婧愮爜锛 framework/web/helpers/CJavaScript.php#105 (鏄剧ず)
public static function jsonEncode($data)
{
    return 
CJSON::encode($data);
}

杩斿洖JSON褰㈠紡鐨凱HP鏁版嵁銆

quote() 鏂规硶
public static string quote(string $js, boolean $forUrl=false)
$js string 灏嗚琚紩鐢ㄧ殑瀛楃涓
$forUrl boolean 瀛楃涓叉槸鍚﹁浣滀负涓涓猆RL浣跨敤
{return} string 琚紩鐢ㄥ悗鐨勫瓧绗︿覆
婧愮爜锛 framework/web/helpers/CJavaScript.php#29 (鏄剧ず)
public static function quote($js,$forUrl=false)
{
    if(
$forUrl)
        return 
strtr($js,array('%'=>'%25',"\t"=>'\t',"\n"=>'\n',"\r"=>'\r','"'=>'\"','\''=>'\\\'','\\'=>'\\\\','</'=>'<\/'));
    else
        return 
strtr($js,array("\t"=>'\t',"\n"=>'\n',"\r"=>'\r','"'=>'\"','\''=>'\\\'','\\'=>'\\\\','</'=>'<\/'));
}

寮曠敤涓涓猨avascript瀛楃涓层 澶勭悊瀹屾垚鍚庯紝 瀛楃涓插彲浠ュ畨鍏ㄧ殑鏀惧埌寮曞彿涓綔涓簀avascript瀛楃涓茶捣浣滅敤銆

Copyright © 2008-2011 by Yii Software LLC
All Rights Reserved.