我正在使用控制台java工具Zxing来解码图像中的qr代码。我从php调用它并且它工作正常但现在我不得不解析它给出的响应:
file:/home/users/public_html/playground/qrcode/images/new.png (format: QR_CODE, type: TEXT):
Raw result:
{"uniqueid":44819,date:131232211}
Parsed result:
{"uniqueid":44819,date:131232211}
Found 4 result points.
Point 0: (22.5,88.5)
Point 1: (22.5,22.5)
Point 2: (88.5,22.5)
Point 3: (79.5,79.5)
我需要的是获得{“uniqueid”:44819,日期:131232211}部分。我试过像:
$response=explode(" ",$response);
$response=preg_replace(array("/Parsed/","/result:/"),array("",""),explode(" ",$response[5]));
$response=$a[0];
还尝试substring
与strpos
。但它仅适用于非间隔字符串。所以我想要一个通用的解决方案。
另外我真的不知道是否有办法以另一种更可靠的格式制作zxing返回响应,所以我可以简单地避免这些php操作。
一些很酷的正则表达式可以解决这个问题吗?也许。但我对此并不擅长。
想法?
答案 0 :(得分:0)
您正在尝试解析命令行程序的输出,这不是一个API。输出很可能是你所说的格式,但为什么解析起来很难?它是开源的,所以你可以修改程序来打印你喜欢的任何东西。为什么还要解析你不喜欢的输出,只需修改输出?