相关疑难解决方法(0)

webservice调用后,json_decode返回NULL

有一个奇怪的行为json_encodejson_decode我不能找到一个解决方案:

我的php应用程序调用php Web服务.webservice返回如下所示的json:

var_dump($foo):
string(62) "{"action":"set","user":"123123123123","status":"OK"}"
Run Code Online (Sandbox Code Playgroud)

现在我想在我的应用程序中解码json:

$data = json_decode($foo, true)
Run Code Online (Sandbox Code Playgroud)

但它返回NULL:

var_dump($data):
NULL
Run Code Online (Sandbox Code Playgroud)

我用的是php5.来自webservice的响应的Content-Type :( "text/html; charset=utf-8"也尝试使用"application/json; charset=utf-8")

可能是什么原因?

php json

57
推荐指数
9
解决办法
10万
查看次数

如何删除多个UTF-8 BOM序列

使用PHP5(cgi)从文件系统输出模板文件,并且有问题吐出原始HTML.

private function fetch($name) {
    $path = $this->j->config['template_path'] . $name . '.html';
    if (!file_exists($path)) {
        dbgerror('Could not find the template "' . $name . '" in ' . $path);
    }
    $f = fopen($path, 'r');
    $t = fread($f, filesize($path));
    fclose($f);
    if (substr($t, 0, 3) == b'\xef\xbb\xbf') {
        $t = substr($t, 3);
    }
    return $t;
}
Run Code Online (Sandbox Code Playgroud)

即使我已经添加了BOM修复程序,我仍然遇到Firefox接受它的问题.你可以在这里看到一个实时的副本:http://ircb.in/jisti/(如果你想查看它,我在http://ircb.in/jisti/home.html投掷的模板文件)

知道如何解决这个问题吗?O_O

php byte-order-mark utf-8

50
推荐指数
6
解决办法
7万
查看次数

json_decode返回JSON_ERROR_SYNTAX但在线格式化程序说JSON没问题

我有一个非常奇怪的问题.

我有一个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;
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:SYNTAX ERROR

什么都没有完全帮助.

这是一场噩梦.

我看到用PHP 5.5我可以使用这个函数:http://php.net/manual/en/function.json-last-error-msg.php

(但我还没有成功安装PHP …

php json

33
推荐指数
6
解决办法
4万
查看次数

将打印格式的JSON转换为有效的JSON

我有一个格式化像JSON的文本文件,但在打印/查看友好的格式,我想给字符串转换为有效的JSON.基本上,我想用读取文件PHP5并调用json_decode反序列化的字符串.但是,json_decode无法解析"打印友好"的JSON字符串.

我收到错误4 JSON无效或格式错误.

它看起来像其他人也有类似的问题,因为我:PHP json_decode()返回NULL与有效的JSON?

我使用记事本++写的JSON文件.

那么,我该怎么转换呢

从:

{
    "data": [
        {
            "thumbImg": "thumbImg",
            "street": "street",
            "city": "Fort Worth",
            "state": "Texas",
            "zip": "76192-0001",
            "url": "url"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

至:

{"data":[{"thumbImg": "thumbImg", "street": "street", "city": "Fort Worth", "state": "Texas", "zip": "76192-0001", "url": "url"}]
Run Code Online (Sandbox Code Playgroud)

我甚至试过做以下事情:

<?php
$filename = "links.json";
$file = fopen($filename, "r");

$lines = file($filename);

$data = "";
;
foreach ($lines as $line_num => $line) {
    $formatted = trim($line);
    $formatted = str_replace("\r", "", $formatted);
    $formatted = …
Run Code Online (Sandbox Code Playgroud)

php json file input

1
推荐指数
1
解决办法
1043
查看次数

标签 统计

php ×4

json ×3

byte-order-mark ×1

file ×1

input ×1

utf-8 ×1