2011-08-12 6 views
0

콘솔 Java 도구 Zxing을 사용하여 이미지의 qr 코드를 디코딩합니다. 나는 PHP에서 호출하고 그것을 잘 작동하지만 지금은이 주시는 응답을 구문 분석과 붙어있어 : 부분 내가해야 할 것은 {: 44,819, 날짜 131,232,211 "을 UniqueID"} 얻을 수 있습니다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) 

. 내가 좋아하는 뭔가를 시도 :

$response=explode(" ",$response); 
$response=preg_replace(array("/Parsed/","/result:/"),array("",""),explode(" ",$response[5])); 
$response=$a[0]; 

을 또한 strpossubstring을 시도했다. 그러나 그것은 간격이없는 문자열에만 적합합니다. 그래서 나는 그것을위한 보편적 인 해결책을 원합니다.

또 다른 신뢰할 수있는 형식으로 응답을 반환하는 방법이 있는지 정말 모르겠어. 그래서 나는 단순히 이러한 PHP 조작을 피할 수 있습니다.

이것을 잘라내는 멋진 정규 표현식? 아마도. 그러나 나는 그것에 능숙하지 않다.

아이디어가 있으십니까?

+0

PHP 스크립트를 통해 어떻게 작동하는지 알 수 있습니까? –

답변

0

API가 아닌 명령 줄 프로그램의 출력을 구문 분석하려고합니다. 결과는 당신이 말하는 형식으로 꽤 예측 가능 합니다만, 왜 파싱하기가 어렵습니까? 오픈 소스이므로 원하는대로 인쇄하도록 프로그램을 수정할 수 있습니다. 왜 당신이 좋아하지 않는 출력을 파싱하는지 궁금합니다. 출력을 수정 하시겠습니까?

+0

zxing의 일부 클래스 파일을 편집하려고했지만 Java가 다소 익숙하지 않기 때문에 다시 컴파일 할 수 없습니다. – moogeek

+0

나는 그것을 얻는다! 'javase/src/com/google/zxing/client/j2se'에있는'DecodeThread.java' 파일을 약간 변경 한 다음'ant'를 사용하여 다시 컴파일했습니다. – moogeek