在Windows上执行幻像js时出错。无效的json

时间:2015-02-19 16:44:40

标签: php phantomjs

我正在使用phantom library将我的highcharts转换为PDF。

当我执行代码时

$result = json_decode(trim(shell_exec($this->getBinPath() . ' ' . escapeshellarg(json_encode($args)))));

返回错误

unable to parse json

正在运行的命令是

 "C:\www\myproject\vendor\kriansa\h2p\bin/win32/phantomjs.exe" "C:\www\myproject\vendor\kriansa\h2p\bin/converter.js" "{ destination : C:\\Windows\\TEMP\\14b6e6edc209b6e731bdbc79976a9430438409ae.tmp , request :{ uri : C:\\Windows\\TEMP\\127ef8f78c335d9af694a9cef0423541dd17a256.html , method : GET }, orientation : Portrait , format : A3 , zoomFactor :1, allowParseCustomFooter :false, allowParseCustomHeader :false, border : 1cm , header :null, footer :null}"

我应该检查什么?我已经验证了json作为参数传递。

修改

我也检查了这个

"C:\www\cimba_aboutmy360\vendor\kriansa\h2p\bin/win32/phantomjs.exe" "C:\www\cimba_aboutmy360\vendor\kriansa\h2p\bin/converter.js" {"destination":"C:\\Windows\\TEMP\\d4ca24267110d5c234b7a006f1ae5c03da248e88.tmp","request":{"uri":"C:\\Windows\\TEMP\\9b5d4d28689c3bc00afc0831666d6ee39a934b5c.html","method":"GET"},"orientation":"Portrait","format":"A3","zoomFactor":1,"allowParseCustomFooter":false,"allowParseCustomHeader":false,"border":"1cm","header":null,"footer":null}

再次出现相同错误

1 个答案:

答案 0 :(得分:0)

我使用this tool验证JS的JSON,它必须通过JS eval测试。

此JSON正确解析:

{ 
    "destination" : "C:\\Windows\\TEMP\\14b6e6edc209b6e731bdbc79976a9430438409ae.tmp",
    "request":
    { 
        "uri" : "C:\\Windows\\TEMP\\127ef8f78c335d9af694a9cef0423541dd17a256.html",
        "method" : "GET"
    }, 
    "orientation" : "Portrait",
    "format" : "A3",
    "zoomFactor" :1, 
    "allowParseCustomFooter" :false, 
    "allowParseCustomHeader" :false, 
    "border" : "1cm",
    "header" :null, 
    "footer" :null
}

注意它们的键(目标等)周围的引号和非本机类型和字符串的引号。你可以保留null,boolean,整数,小数而不带引号。

修改

我认为您还需要在命令调用

中将JSON包装在引号中
"C:\www\cimba_aboutmy360\vendor\kriansa\h2p\bin/win32/phantomjs.exe"  
"C:\www\cimba_aboutmy360\vendor\kriansa\h2p\bin/converter.js"
"{'destination':'C:\\Windows\\TEMP\\d4ca24267110d5c234b7a006f1ae5c03da248e88.tmp','request':{'uri':'C:\\Windows\\TEMP\\9b5d4d28689c3bc00afc0831666d6ee39a934b5c.html','method':'GET'},'orientation':'Portrait','format':'A3','zoomFactor':1,'allowParseCustomFooter':false,'allowParseCustomHeader':false,'border':'1cm','header':null,'footer':null}"