POST有效载荷在Slack API中不是有效的JSON [检查隐藏字符,是的,它在“有效载荷”下,依此类推]

时间:2019-04-17 10:49:53

标签: php json wordpress

使用PHP从Slack接收 POST数据并将其存储在WordPress中。

JSON字符串作为数组的值:$_POST["payload"]

json_decode给出错误4(语法错误)

我要删除这样的不可见字符:

  for ($i = 0; $i <= 31; ++$i) {
      $payload = str_replace(chr($i), "", $payload);
  }
  $payload = str_replace(chr(127), "", $payload);
  if (0 === strpos(bin2hex($payload), 'efbbbf')) {
     $payload = substr($payload, 3);
  }

当我转储字符串时,将其手动复制到一个变量中,它将被解析:

$HELL = '{
"type":"message_action",
"token":"ijijijiji",
"action_ts":"vvvvv",
[etc]
';
$json = json_decode($HELL, TRUE);
var_dump($json);

我无法捕获实际的字符串并以任何方式对其进行解析。

解析:

$json = json_decode($payload, true);


ob_start();
 var_dump($json);
$jsnd = ob_get_clean();

ob_start();
 var_dump($payload);
$dump = ob_get_clean();

update_post_meta( 133, 'blood_json', $jsnd  );
update_post_meta( 133, 'blood_dump', $dump );

在这里,转储将始终提供字符串,而JSON将始终提供NULL。

string(695) "{"type":"message_action","token": ..."

可能是什么问题?

0 个答案:

没有答案