包含我自己的mb_string函数或使用PHP的默认值?

问题描述:

对于一个公共应用程序 - 你认为假设在所有服务器上启用了mb_string扩展(或几乎全部,如95%)是个好主意吗?包含我自己的mb_string函数或使用PHP的默认值?

是否有主机在那里禁用此扩展?

+2

它通常可用,但并非总是如此。您应该向您的软件记录它的要求和/或在安装之前显示它们。滚动你自己的声音有点像重新发明*。 – hakre

+0

@hakre:好**回答**。为什么在这里? :-) – Herbert

我认为大多数默认情况下启用了它,但我知道一些托管服务提供商没有这样做,并且谁也拒绝启用它(从来没有从中得到一个很好的理由)。

如果您希望所有用户都能够在没有任何更改的情况下在其服务器上安装应用程序,那么您可能需要推出自己的一组功能。

但是,它可能是一个更好的解决方案,使mb_string成为您的应用程序的先决条件(也许测试它在安装脚本中的存在),那么您将能够节省自己的额外工作,同时仍然提供满意的用户体验。

如果你把Drupal的作为公共应用的一个例子,他们居然推出自己的功能(例如drupal_substr()drupal_strlen()),他们在测试中mb_string扩展的存在,并就如何执行此功能的决定基于此。

+0

我不明白为什么在这个时代,mb_string在PHP安装中没有默认启用。 **拒绝**使其成为托管提供商的简单不负责任(恕我直言)。 – Herbert

+0

@赫伯特我不能同意更多,就我而言,'mb_string'是必不可少的......为什么地球上不想使用更快的字符串函数? – Clive

+0

为了检查扩展是否被启用,你认为使用'defined('MB_OVERLOAD_STRING')'而不是function_exists()会更好吗?我认为检查一个常量是否定义会更快 – Alex