非常に奇妙な問題が発生しました。
JSON Web サービスがあります。
このウェブサイトで確認するとhttp://www.freeformatter.com/json-formatter.html#ad-output
全て大丈夫。
しかし、このコードでJSONをロードすると:
$data = file_get_contents('http://www.mywebservice');
if(!empty($data))
{
$obj = json_decode($data);
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - JSON_ERROR_NONE';
break;
case JSON_ERROR_DEPTH:
echo ' - JSON_ERROR_DEPTH';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - JSON_ERROR_STATE_MISMATCH';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - JSON_ERROR_CTRL_CHAR';
break;
case JSON_ERROR_SYNTAX:
echo "\r\n\r\n - SYNTAX ERROR \r\n\r\n";
break;
case JSON_ERROR_UTF8:
echo ' - JSON_ERROR_UTF8';
break;
default:
echo ' - Unknown erro';
break;
}
エラーが発生しました: SYNTAX ERROR
これはまったく役に立ちません。
悪夢です。
PHP 5.5 では、この関数を使用できることがわかります: http://php.net/manual/en/function.json-last-error-msg.php
(しかし、私はまだ PHP 5.5 のインストールに成功していません。この関数が詳細を教えてくれるかどうかはわかりません)