Php字符串htmlspecialchars和标签?

时间:2013-04-01 18:05:11

标签: php tags chat messages htmlspecialchars

我的聊天脚本需要一些帮助,现在不允许使用html标签。

我需要它以允许<b> <u><i>标记,以便用户可以编辑他们的文本。

我的系统将网址转换为链接,因此某些html有一些基本系统,但我需要那些文本编辑系统。 以下是要播放的文件,它们是我自己的域中的文本文档:http://shadowkiro.net/help_needed_stackowerflow

我一直在尝试从这里和那里搜索答案,找到有关strip_tags和字符串htmlspecialchars的内容。它们看起来像我需要使我的html标签工作以及我需要放在chat_room.js文件中的东西,但我完全不知道如何使它们作为代码与我的chat_room.tpl网站合作所有的聊天消息被发送到聊天窗口。 在chat_room.tpl中,这个聊天脚本也有粗体,下划线和斜体脚本,它们将粗体,斜体或下划线整个文本而不是它的一部分。我需要一个粗体,斜体或仅加下划线的选项。

以下是我的聊天内容的小版画屏幕: http://i1110.photobucket.com/albums/h448/shadowkiro/chat_window.png

帮帮我?

我对此感到厌烦,抱歉我的英语不好,这不是我的母语。


我在chat_room.js中尝试了这个但是没有用。

// B I U codes here

    if (typeof(converted_parts[i])=='undefined' && 0==msg_parts[i].indexOf('<b>') && msg_parts[i]) {
              msg_parts[i]='<b>'+htmlspecialchars(msg_parts[i])+'</b>';

}

    if (typeof(converted_parts[i])=='undefined' && 0==msg_parts[i].indexOf('<i>') && msg_parts[i]) {
              msg_parts[i]='<i>'+htmlspecialchars(msg_parts[i])+'</i>';

}

    if (typeof(converted_parts[i])=='undefined' && 0==msg_parts[i].indexOf('<u>') && msg_parts[i]) {
              msg_parts[i]='<u>'+htmlspecialchars(msg_parts[i])+'</u>';

}

2 个答案:

答案 0 :(得分:2)

使用HTML Purifier,它将允许您创建HTML标记的白名单

答案 1 :(得分:0)

首先执行htmlspecialchars()然后用

替换输出的代码
<?php
$string=htmlspecialchars($string);

$string = 'any text <i>';
$patterns = array();
$patterns[0] = "/&lt;i&gt;/"; // for<i>
$patterns[1] = "/&lt;b&gt;/"; // for<b>
$patterns[2] = "/&lt;u&gt;/"; // for<u>

$replacements = array();

$replacements[0] = '<i>';
$replacements[1] = '</b>';
$replacements[2] = '</u>';

echo preg_replace($patterns, $replacements, $string);
?>