【问题标题】:PHP string parameter best practicePHP 字符串参数最佳实践
【发布时间】:2017-12-01 15:17:55
【问题描述】:

我有一个 PHP 函数,它使用一个字符串参数在内部构建对象图,然后使用 json_encode() 创建 JSON 字符串,然后将 JSON 字符串发布到远程 Web 服务。

像这样:

function send($text)
{
    $payload = array(
        'text' => $text
        // Set additional properties here ...
    );

    $payload_json = json_encode($payload);

    // Post $payload_json to remote service with Curl ...
 }

来自json_encode的手册(http://php.net/manual/en/function.json-encode.php

所有字符串数据必须是 UTF-8 编码。

我看到了几个选项:

  • 尝试验证 $text 实际上是 UTF-8,如果不是则抛出异常
  • 尝试检测 $text 中的编码并在必要时将其转换为 UTF-8
  • 当 $text 不是 UTF-8 时返回 false
  • 在文档中与我的 API 用户沟通 $text 必须为 UTF-8
  • 使用 json_last_error() 检查错误,如果遇到错误则抛出异常

最佳做法是什么?

【问题讨论】:

    标签: php string character-encoding


    【解决方案1】:

    您应该始终与 API 的用户交流您的期望。

    如果您希望使用 UTF-8 编码的文本,请在您的文档中说明。

    一旦它在那里,您应该返回一个描述性错误,例如“无效编码,有关更多信息,请阅读文档:链接”,其中链接指向失败调用的相关页面

    这样,您不再需要负责,使用您的 API 的开发人员会知道出了什么问题,而您不必担心 API 中的问题。

    你是开发者,它是你的 API,你的 API 有自己的规则,如果人们想使用它,他们需要遵循你设置的规则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      • 2011-01-15
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多