php5.2以后自带json_decode函数,但是对json文本串的格式要求非常严格。
很可能使用该函数得到的返回值是NULL
可以使用使用json_last_error()函数获取到的返回值来帮助我们判断出问题的原因。
其中如果提示错误JSON_ERROR_SYNTAX(Syntax error),表示json串格式错误。
php5.2以后自带json_decode函数,但是对json文本串的格式要求非常严格。
很可能使用该函数得到的返回值是NULL
可以使用使用json_last_error()函数获取到的返回值来帮助我们判断出问题的原因。
其中如果提示错误JSON_ERROR_SYNTAX(Syntax error),表示json串格式错误。
1 | /** |
虽然可以在浏览器中正常访问http://localhost 但用file,file_get_contents等函数打开http://localhost 异常。用127.0.0.1也可以打开,本地hosts指向也正常,尝试ping localhost结果返回的是::1,推测不是httpd和php的配置问题,是php不能识别::1所致
ping localhost
reply from ::1: times<1ms
reply from ::1: times<1ms
reply from ::1: times<1ms
应该是返回127.0.0.1,::1显然是错误的,不过为什么呢,hosts文件也没有错啊
127.0.0.1 localhost
这导致php的file_get_contents,getimagesize等函数不能打开“ http://localhost ”开头的,只可以打开“ http://127.0.0.1 ”开头的。
卸载ipv6:ipv6 uninstall
一切恢复正常。
gettest.php文件:
1 |
|
PHP 回傳 JSON 很方便, 只要將資料經過 json_encode() 就解決了.
不過因為 PHP 自動轉換型別, 造成很多資料都習慣存成字串, 希望在輸出 JSON 的時候, 數字部份可以輸出成數字, 該怎麼做呢?
另一個問題, PHP 轉換成 JSON, 部份陣列會被轉成对象(因為 JavaScript 陣列的 Key 必須是數字, 所以會轉成对象), 要全部強制轉成对象, 該怎麼做呢?
PHP 讓 json_encode() 指定回傳格式
上述的問題, json_encode() 的參數都可以解決.