2011-08-12 148 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