php5 2以下版本json encode相容性

2021-09-01 07:15:49 字數 1918 閱讀 6381

php5.1版本通過編譯載入的json.so,在使用json_encode時會把鍵名為空的陣列

$arr =array(''=>array('id'=>'aaa','total'=>'bbb'))轉化成空;但是在php5.2中使用使用自帶的此函式不存在此問題。

或者不想編譯載入json.so擴充套件,可以使用替代函式

$jsonencode = version_compare(php_version, '5.2.5', '>=') ? json_encode($arr) : php_json_encode($arr);

echo $jsonencode;

function php_json_encode($arg)

}if ($numeric)

$s .= json_encode($arg[$i]);

}$returnvalue = '[' . $s . ']';

} else

$s .= json_encode($i) . ':' . json_encode($arg[$i]);

}$returnvalue = '';

}break;

case 'object':

foreach (get_object_vars($arg) as $i => $v)

$s .= json_encode($i) . ':' . $v;

}$returnvalue = '';

break;

case 'integer':

case 'double':

$returnvalue = is_numeric($arg) ? (string) $arg : 'null';

break;

case 'string':

$returnvalue = '"' . strtr($arg, array(

"\r" => '\\r', "\n" => '\\n', "\t" => '\\t', "\b" => '\\b',

"\f" => '\\f', '\\' => '\\\\', '"' => '\"',

"\x00" => '\u0000', "\x01" => '\u0001', "\x02" => '\u0002', "\x03" => '\u0003',

"\x04" => '\u0004', "\x05" => '\u0005', "\x06" => '\u0006', "\x07" => '\u0007',

"\x08" => '\b', "\x0b" => '\u000b', "\x0c" => '\f', "\x0e" => '\u000e',

"\x0f" => '\u000f', "\x10" => '\u0010', "\x11" => '\u0011', "\x12" => '\u0012',

"\x13" => '\u0013', "\x14" => '\u0014', "\x15" => '\u0015', "\x16" => '\u0016',

"\x17" => '\u0017', "\x18" => '\u0018', "\x19" => '\u0019', "\x1a" => '\u001a',

"\x1b" => '\u001b', "\x1c" => '\u001c', "\x1d" => '\u001d', "\x1e" => '\u001e',

"\x1f" => '\u001f'

)) . '"';

break;

case 'boolean':

$returnvalue = $arg?'true':'false';

break;

default:

$returnvalue = 'null';

}return $returnvalue;

}

PHP5 2之前版本總結

autoload 函式,如果定義了該函式,那麼當在 中使用乙個未定義的類的時候,該函式就會被呼叫,你可以在該函式中載入相應的類實現檔案,如 function autoload classname php 但該函式已經不被建議使用,原因是乙個專案中僅能有乙個這樣的 autoload 函式,因為 php...

php5 2以上版本安裝與擴充套件庫的安裝

安裝完phpmyadmin,大家經常出現的問題就是報錯 無法載入mysql擴充套件,請檢查php配置 如果你使用的是php5.2以上的版本,請注意 php對服務的擴充套件功能做了一定的改動,也就是說,你安裝php和擴充套件的方式也要做調整了。主要的調整有兩方面,一是php5.2以上的版本中,php....

PHP5 2中PDO的簡單使用

pdo配置 1 確保php版本為5.2.5以上 主要是我用的5.2.5,第一次不知道用的5.1.x的,結果一直搞不好 2 在php.ini中找到dynamic extensions擴充套件部分,去掉extension php pdo.dll前面的分號 3 去掉相應資料庫pdo擴充套件前面的分號,如 ...