get_html_translation_table最多需要2个参数,3个给定

时间:2012-11-16 06:54:38

标签: php

服务器正在运行 PHP 5.2.17 ,我正在尝试使用三个参数运行get_html_translation_table()。以下是我调用函数的方法:

$text = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES, "UTF-8");

我收到一条警告信息

  

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

Per PHP Documentation,第三个参数在PHP 5.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);
}

1 个答案:

答案 0 :(得分:1)

两个选项:更改您的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);
}