需要协助协调PHP“T_STRING”错误

时间:2011-11-23 22:07:02

标签: json php invalid-characters

基本上我暂时停留在PHP 5.1.6系统上并需要json_encode()所以我找到了这段代码。但是,我无法弄清楚为什么它抱怨T_STRING无效。希望它是完全明显/简单的东西。

当我尝试使用以下代码时:

if(!function_exists('json_encode')){
    function json_encode($a=false){
        // Some basic debugging to ensure we have something returned
        if (is_null($a)) return 'null';
        if ($a === false) return 'false';
        if ($a === true) return 'true';
        if (is_scalar($a))
        {
            if (is_float($a))
            {
                // Always use '.' for floats.
                return floatval(str_replace(',', '.', strval($a)));
            }
            if (is_string($a))
            {
                static $jsonReplaces = array(array('\\', '/', "\n", "\t", "\r", "\b", "\f", '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'));
                return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
            }
            else
                return $a;
        }
        $isList = true;
        for ($i = 0, reset($a); true; $i++) {
            if (key($a) !== $i)
            {
                $isList = false;
                break;
            }
        }
        $result = array();
        if ($isList)
        {
            foreach ($a as $v) $result[] = json_encode($v);
            return '[' . join(',', $result) . ']';
        }
        else
        {
            foreach ($a as $k => $v) $result[] = json_encode($k).':'.json_encode($v);
            return '{' . join(',', $result) . '}';
        }
    }
}


if(!function_exists('json_decode')){
    function json_decode($json){
        $comment = false;
        $out = '$x=';
        for ($i=0; $i<strlen($json); $i++)
        {
            if (!$comment)
            {
                if (($json[$i] == '{') || ($json[$i] == '['))
                    $out .= ' array(';
                else if (($json[$i] == '}') || ($json[$i] == ']'))
                    $out .= ')';
                else if ($json[$i] == ':')
                    $out .= '=>';
                else
                    $out .= $json[$i];
            }
            else
                $out .= $json[$i];
            if ($json[$i] == '"' && $json[($i-1)]!="\\")
                $comment = !$comment;
        }
        eval($out . ';');
        return $x;
    }
}

我收到以下错误:

  

解析错误:语法错误,第4行/var/www/html/siteadmin/includes/functions_custom.inc.php中的意外T_STRING

如果不清楚,“第4行”指的是包含“function json_encode($ a = false)”的行。我之前尝试过添加函数(有和没有参数和默认值),它们都可以正常工作。但是,这段代码有问题。

0 个答案:

没有答案