【问题标题】:Htmlspecialchars output when running a query运行查询时的 Htmlspecialchars 输出
【发布时间】:2016-04-18 23:29:06
【问题描述】:

我正在使用以下查询创建一个页面数组:

$pages = Page::orderBy('sorting')->get()->toArray();

当我然后json_encode 输出时,当其中一个页面标题中有引号时,输出已损坏。我怎样才能防止这种情况发生?

【问题讨论】:

  • json_encode 正确处理包含引号和双引号的字符串。你能粘贴一个“损坏”的 JSON 数据的例子吗?

标签: php sql json laravel


【解决方案1】:

如果你想返回json,你应该使用:

$pages = Page::orderBy('sorting')->get()->toArray();
return response()->json(['pages' => $pages]);

应该不会有任何问题。如果你有任何东西,请展示它们是什么。

只有当我有非 UTF 的数据库连接并且有一些字符时,我才遇到过 json 的问题。由于json_encode 需要数据为 UTF-8 格式,这可能会导致问题

【讨论】:

    【解决方案2】:

    Laravel 确实返回了正确的 JSON。似乎 javascript 需要以一种奇怪的风格调用对象,其中对象需要放在单引号内:UINestable.init('{ $json) !!}')。因此,当 JSON 中有单引号时,它会出错。不过还是谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-27
      • 1970-01-01
      • 2021-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多