2011-08-12 103 views
0

我使用控制台java工具Zxing解码来自图像的qr码。我把它从PHP和它工作正常,但现在我坚持了解析响应,它给:解析zxing qrcode解码响应与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]; 

而且还试图substringstrpos。但它只适用于非间距字符串。所以我想要一个通用的解决方案。

另外我真的不知道是否有任何方法让另一个更可靠的格式zxing返回响应,所以我可以简单地避免这些php操作。

一些很酷的正则表达式可以将其切除?也许。但我并不擅长。

想法?

+0

你能解释一下如何通过php脚本来实现这个功能吗? –

回答

0

你试图解析命令行程序的输出,这并不意味着API。尽管如此,输出的格式非常可预测 - 为什么很难分析?它是开源的,所以你可以修改程序打印任何你喜欢的东西。为什么麻烦解析你不喜欢的输出,只需修改输出?

+0

我试图编辑zxing的一些类文件,但是我无法重新编译它,因为Java对我来说有点陌生。 – moogeek

+0

好的我明白了!只是对位于'javase/src/com/google/zxing/client/j2se'中的'DecodeThread.java'文件做了一些修改,然后用'ant'重新编译了它。 – moogeek