サーバーはPHP 5.2.17で実行されており、3 つの引数を指定して get_html_translation_table() を実行しようとしています。関数を呼び出す方法は次のとおりです。
$text = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES, "UTF-8");
という警告メッセージが表示されます
get_html_translation_table は最大で 2 つのパラメーターを想定しており、3 つ (ファイル名と行番号) を指定します。
PHPドキュメントによると、3 番目の引数はPHP 5.3.4 以降でサポートされていますが、3 番目の引数を追加することは、"UTF-8" で返される配列をエンコードする唯一の方法です。(醜い警告メッセージにもかかわらず機能します。)
すべての html 特殊文字とスペースをエンコードする関数を作成するには get_html_translation_table() が必要ですが、次の関数は 3 番目の引数がないと機能しません。
/**
* Trying to encoding all html special characters, including nl2br()
* @param string $original
* @return string
*/
function ecode_html_sp_chars($original) {
$table = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES, "UTF-8");
$table[' '] = ' ';
$encoded = strtr($original, $table);
return nl2br($encoded);
}