標籤:style blog color io 使用 ar for 資料 div
json資料大家應該遇到過,json_encode()和json_decode()是php5.0以後加上的內建函數,如果低版本要使用,需加擴充,很多時候我們無權改變伺服器的配置,我們只能通過自訂函數來實現這兩個函數,其實所有的系統內建函數,基本上我們都是可以自己來定義的。
if (!function_exists(‘json_encode‘)) {function json_encode($array = array()) {if(!is_array($array)) return null;$json = "";$i = 1;$comma = ",";$count = count($array);foreach($array as $k=>$v){if($i==$count) $comma = "";if(!is_array($v)){$v = addslashes($v);$json .= ‘"‘.$k.‘":"‘.$v.‘"‘.$comma;}else{$json .= ‘"‘.$k.‘":‘.json_encode($v).$comma;}$i++;}$json = ‘{‘.$json.‘}‘;return $json;}}if (!function_exists(‘json_decode‘)) {function json_decode($json, $assoc = true) {$comment = false;$out = ‘$x=‘;$json = preg_replace(‘/:([^"}]+?)([,|}])/i‘, ‘:"\1″\2′, $json);for ($i=0; $i<strlen($json); $i++) {if (!$comment) {if (($json[$i] == ‘{‘) || ($json[$i] == ‘[‘)) {$out .= ‘array(‘;}elseif (($json[$i] == ‘}‘) || ($json[$i] == ‘]‘)) {$out .= ‘)‘;}elseif ($json[$i] == ‘:‘) {$out .= ‘=>‘;}elseif ($json[$i] == ‘,‘) {$out .= ‘,‘;}elseif ($json[$i] == ‘"‘) {$out .= ‘"‘;}}else $out .= $json[$i] == ‘$‘ ? ‘\$‘ : $json[$i];if ($json[$i] == ‘"‘ && $json[($i-1)] != ‘\\‘) $comment = !$comment;}eval($out. ‘;‘);return $x;}}
php自訂json_encode()和json_decode()函數