2012-11-16 82 views
2

服務器運行於PHP 5.2.17,我試圖用三個參數運行get_html_translation_table()。下面是我如何調用該函數:get_html_translation_table期望至多2個參數,3給出

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

我得到一個警告消息說

get_html_translation_table預計最多2個參數,3給出 (文件名和行號)。

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

兩個選項:更改您的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); 
} 
+0

謝謝,這可能是我應該去的方式。 – hoymkot

相關問題