【问题标题】:Parsing zxing qrcode decode response with php用php解析zxing qrcode解码响应
【发布时间】:2011-10-16 14:35:40
【问题描述】:

我正在使用控制台 java 工具 Zxing 从图像中解码二维码。我从 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,date:131232211} 部分。我试过类似的东西:

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

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

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

一些很酷的正则表达式来消除这个?也许。但我不是很擅长。

想法?

【问题讨论】:

  • 您能解释一下您是如何通过 php 脚本来实现这一点的吗?

标签: java php regex preg-replace zxing


【解决方案1】:

您正在尝试解析命令行程序的输出,这并不意味着作为 API。不过,输出在您所说的格式中是可以预测的——为什么很难解析?它是开源的,因此您可以修改程序以打印您喜欢的任何内容。为什么还要解析你不喜欢的输出,只修改输出?

【讨论】:

  • 我尝试编辑zxing的一些类文件,但我无法正确重新编译它,因为Java对我来说有点陌生。
  • 好的,我明白了!只是对位于javase/src/com/google/zxing/client/j2seDecodeThread.java 文件进行了一些更改,然后用ant 重新编译它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-10
  • 2012-06-09
  • 2014-03-26
  • 1970-01-01
  • 2016-09-03
相关资源
最近更新 更多