Php get_html_translation_表最多需要2个参数,给定3个参数

Php get_html_translation_表最多需要2个参数,给定3个参数,php,Php,服务器运行的是PHP5.2.17,我尝试运行带有三个参数的get_html_translation_table()。下面是我调用函数的方式: $text = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES, "UTF-8"); 我收到一条警告信息说 get_html_translation_表最多需要2个参数,给定3个参数 (文件名和行号) 根据,第三个参数在PHP5.3.4之后得到了的支持,但是添加第三个参数是我能想到的编码“UTF-

服务器运行的是PHP5.2.17,我尝试运行带有三个参数的get_html_translation_table()。下面是我调用函数的方式:

$text = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES, "UTF-8");
我收到一条警告信息说

get_html_translation_表最多需要2个参数,给定3个参数 (文件名和行号)

根据,第三个参数在PHP5.3.4之后得到了的支持,但是添加第三个参数是我能想到的编码“UTF-8”中返回的数组的唯一方法。(尽管发出了难看的警告信息,但它仍能正常工作。)

我需要get_html_translation_table()来创建一个对所有html特殊字符和空格进行编码的函数,如果没有第三个参数,下面的函数将无法工作

/**
 * 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);
}

两个选项:更改php版本或使用htmlentities函数。在htmlentities中,4.1中添加了编码参数

例如:


谢谢,这可能是我该走的路。
function ecode_html_sp_chars($original) {
    $encoded = htmlentities($original, ENT_QUOTES, "UTF-8");
    $encoded = str_replace(' ', ' ', $encoded);
    return nl2br($encoded);
}