2011-09-27 31 views
3

對於一個公共應用程序 - 你認爲假設在所有服務器上啓用了mb_string擴展(或幾乎全部,如95%)是個好主意嗎?包含我自己的mb_string函數或使用PHP的默認值?

是否有主機在那裏禁用此擴展?

+2

它通常可用,但並非總是如此。您應該向您的軟件記錄它的要求和/或在安裝之前顯示它們。滾動你自己的聲音有點像重新發明輪子。 – hakre

+0

@hakre:好**回答**。爲什麼在這裏? :-) – Herbert

回答

2

我認爲大多數默認情況下啓用了它,但我知道一些託管服務提供商沒有這樣做,並且誰也拒絕啓用它(從來沒有從中得到一個很好的理由)。

如果您希望所有用戶都能夠在沒有任何更改的情況下在其服務器上安裝應用程序,那麼您可能需要推出自己的一組功能。

但是,它可能是一個更好的解決方案,使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