【问题标题】:After Encodeing json i have and extra whitespace, how can i remove that?在对 json 进行编码后,我有额外的空格,我该如何删除它?
【发布时间】:2017-01-29 07:45:18
【问题描述】:

我有以下数组,我想将其编码为 jSon:

$output = array("success" =>0,"msg" => "The e-mail address is already in use");

我正在使用以下方法进行编码:

echo json_encode($output);

结果我得到以下字符串:

{"success":0,"msg":"The e-mail address is already in use"}

我看起来完全没问题,但最后我有一个额外的空格,女巫阻止我进一步使用 jSon 字符串。谁能帮助我如何从最后删除这个空格?

【问题讨论】:

  • 在您执行echo json_encode($output); 之后,该脚本还有其他输出吗?
  • 没什么,在这一行之后我只是简单地关闭了 php 标签
  • 您能否提供重现问题的代码minimal example
  • 你有没有结束PHP标签,比如?>,如果你在结束标签之后有任何回车或其他东西,它们也得到输出,我个人出于这个原因从不使用结束标签。跨度>
  • 看到它的I just simply close the php tag PHP 没有它们关闭标签就可以了。

标签: php json


【解决方案1】:

您可能在结束 PHP 标记之后有一些内容。举个例子:

<?php
    $output = array("success" =>0,"msg" => "The e-mail address is already in use");
    echo json_encode($output);
?>   
\n

现在我不能在代码块中表示一个新行,但假设 \n 是一个行返回。现在,在 PHP 标记之后,它将回显 json,然后在 PHP 标记之后,它回显任何内容,例如该新行。但是,您可以只删除结束标签。 open 标记也是如此,其中的任何内容同样会被输出,但如果它位于文件的顶部,则更容易发现。

或者,如果你有 {...}\n 作为你的 json 输出,至少这是我的最佳猜测。

这是一个非常容易犯的错误,而且很难被发现。这可能看起来很奇怪,但它确实是这样发生的。

【讨论】:

  • 谢谢,这是我的问题,我在结束标记之后有 2 行额外的行
  • 是的,是的.. 在那里做过,得到了帽子和 T 恤。我会完全取消结束标签。因为这个问题,我已经有 3 年没用过它们了,哈哈
猜你喜欢
  • 2021-05-16
  • 2018-09-02
  • 1970-01-01
  • 2020-01-10
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 2020-09-01
相关资源
最近更新 更多