函数转义文本,但允许某些标记



我试图创建一个功能,在Wordpress客户端使用,将消毒输入,但允许某些标签,如<b>。这是我目前所看到的:

function chase_sanitize_textarea( $text ) {
    return esc_textarea( $text );
}

我是否可以修改它以允许加粗/斜体标签等?

因为你使用的是wordpress函数,所以你需要做一些工作。我的方法是用关键字替换粗体和斜体标记,将其发送到esc_textarea,然后在返回后替换关键字。这可以很容易地用strtr来完成。

function chase_sanitize_textarea( $text ) {
    $rep_array = array("<b>" => "[START_BOLD]", "</b>" => "[END_BOLD]", "<i>" => "[START_ITALIC]", "</i>" => "[END_ITALIC]"); //set array for tag/keyword switch
    $esc_textarea_value = esc_textarea( strtr($text,$rep_array) ); //replace each tag with its keyword and send to esc_textarea
    return strtr($esc_textarea_value,array_flip($rep_array)); //flip the tag/keyword array and replace the values
}

最新更新