PHP字符串参数最佳实践

时间:2017-06-28 10:03:32

标签: php string character-encoding

我有一个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
  • 在$ text必须为UTF-8
  • 的文档中与我的API用户进行通信
  • 使用json_last_error()检查错误,并在遇到错误时抛出异常

最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

您应该始终与API的用户沟通您期望的内容。

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

一旦进入,您应该返回描述性错误,例如“无效编码,有关更多信息,请阅读文档:链接”,其中链接转到失败的呼叫的相关页面

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

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