【问题标题】:php break string into smaller parts based on string, not lengthphp 根据字符串而不是长度将字符串分成更小的部分
【发布时间】:2015-04-03 22:59:29
【问题描述】:

我已经阅读了 php 函数 wordwrapchunk_split,但是当字符串中没有物理中断时,我不知道如何将字符串分解成更小的块。

我有一个 URL 编码的字符串:

%5B%7B%22partNumber%22%3A%2243160-1104%22%7D%2C%7B%22partNumber%22%3A%2242410-6170%22%7D%2C%7B%22partNumber%22%3A%2222-10-2021%22%7D%2C%7B%22partNumber%22%3A%2255091-0674%22%7D%2C%7B%22partNumber%22%3A%2243160-0106%22%7D%2C%7B%22partNumber%22%3A%2287832-1420%22%7D%2C%7B%22partNumber%22%3A%2273415-1001%22%7D%2C%7B%22partNumber%22%3A%2253627-1274%22%7D%2C%7B%22partNumber%22%3A%2243650-0510%22%7D%5D

我正在输入 API 的一堆零件编号。此 API 在向我返回 false 之前一次只能接收 500 个字符,因此我需要将字符串分解为 500 个字符以下,但仍然是一个完整、可搜索的字符串。

含义——不管它被分解,这个新字符串的每次迭代都需要

  • 少于 500 个字符
  • B%22结尾,这样字符串的下一次迭代就以
  • partNumber%22

我不确定如何使用wordwrap + explode method 来完成此操作,因为我只使用它来按长度拆分字符串。有没有类似的函数可以用来指定一个精确的字符串在这么多字符后中断?

【问题讨论】:

  • 您好,通过解码meyerweb.com/eric/tools/dencoder 来检查您的字符串。您的字符串是 JSON 字符串,您可以简单地对其进行解码然后对其进行解析。这将是最好的方法。 API Restful 吗?如果是这样,只需在转换后传递纯 JSON。

标签: php string


【解决方案1】:

使用explode

$apiStrings = explode("B%22", $string);
foreach($apiStrings as $apiString)
{
    //Do request
}

【讨论】:

  • 我曾想过,但这迫使我进行约 500 次搜索,这非常慢。使用通用零件编号的长度,我可以在一次搜索中搜索大约 50 个零件,所以我不想把它分解成那么小的东西……如果可能的话。
  • 你可以分解,检查字符串长度,并根据需要将字符串连接在一起以形成更长的请求。
  • 这是错误的方式,他不应该这样拆分字符串。该字符串在解码时是一个 json。所以应该写一些更兼容和统一的东西来适应未来的需求。
  • @JohnWu 这个字符串到底是怎么生成的?你会生成它吗?
猜你喜欢
  • 2017-07-05
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 1970-01-01
  • 2016-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多