HtmlEntities

#region GetOnlyTextFromHtmlCode + RemoveHtmlChars + RemoveTagFromHtmlCode
        /// <summary>
        /// http://www.codeproject.com/script/Content/ViewAssociatedFile.aspx?rzp=%2FKB%2Fedit%2FZetaHtmlEditControl%2F%2FZetaHtmlEditControl-Source.zip&zep=Control%2FHtmlEditControl.cs&obid=43954&obtid=2&ovid=13
        /// </summary>
        /// <param name="htmlCode"></param>
        /// <returns></returns>
        private static string getOnlyTextFromHtmlCode(string htmlCode)
        {
            //<br>
            htmlCode = htmlCode.Replace("\r\n", @" ");
            htmlCode = htmlCode.Replace("\r", @" ");
            htmlCode = htmlCode.Replace("\n", @" ");

            htmlCode = htmlCode.Replace(@"</p>", Environment.NewLine + Environment.NewLine);
            htmlCode = htmlCode.Replace(@"</P>", Environment.NewLine + Environment.NewLine);

            //html comment
            htmlCode = Regex.Replace(
                htmlCode,
                @"<!--.*?-->",
                string.Empty,
                RegexOptions.Singleline | RegexOptions.IgnoreCase);

            //<p>
            htmlCode = Regex.Replace(htmlCode,
                @"<br[^>]*>",
                Environment.NewLine,
                RegexOptions.Singleline | RegexOptions.IgnoreCase);

            //tags
            htmlCode = removeTagFromHtmlCode(@"style", htmlCode);
            htmlCode = removeTagFromHtmlCode(@"script", htmlCode);

            //html
            htmlCode = Regex.Replace(
                htmlCode,
                "<(.|\n)+?>",
                string.Empty,
                RegexOptions.Singleline | RegexOptions.IgnoreCase);

            //umlaute
            htmlCode = unescapeHtmlEntities(htmlCode);

            //whitespaces
            htmlCode = Regex.Replace(
                htmlCode,
                @" +",
                @" ",
                RegexOptions.Singleline | RegexOptions.IgnoreCase);

            return htmlCode;
        }
        /// <summary>
        /// http://dev.w3.org/html5/html-author/charref
        /// </summary>
        /// <param name="htmlCode"></param>
        /// <returns></returns>
        private static string unescapeHtmlEntities(string htmlCode)
        {

      htmlCode = htmlCode.Replace(@"&nbsp;", @" ");

      htmlCode = htmlCode.Replace(@"&Auml;", @"ä");
      htmlCode = htmlCode.Replace(@"&absp;", @"");
      htmlCode = htmlCode.Replace(@"&obsp;", @"");
      htmlCode = htmlCode.Replace(@"&Obsp;", @"");
      htmlCode = htmlCode.Replace(@"&ubsp;", @"");
      htmlCode = htmlCode.Replace(@"&Ubsp;", @"");
      htmlCode = htmlCode.Replace(@"&szlig;", @"ß");

      htmlCode = htmlCode.Replace(@"&pound;", @"£");
      htmlCode = htmlCode.Replace(@"&sect;", @"§");
      htmlCode = htmlCode.Replace(@"&copy;", @"©");
      htmlCode = htmlCode.Replace(@"&reg;", @"®");
      htmlCode = htmlCode.Replace(@"&micro;", @"µ");
      htmlCode = htmlCode.Replace(@"&para;", @"¶");
      htmlCode = htmlCode.Replace(@"&Oslash;", @"Ø");
      htmlCode = htmlCode.Replace(@"&oslash;", @"Ø");
      htmlCode = htmlCode.Replace(@"&divide;", @"÷");
      htmlCode = htmlCode.Replace(@"&times;", @"×");

            return htmlCode;
        }

        private static string removeTagFromHtmlCode(
            string tag,
            string htmlCode)
        {
            return Regex.Replace(
                htmlCode,
                string.Format(@"<{0}.*?</{1}>", tag, tag),
                string.Empty,
                RegexOptions.Singleline | RegexOptions.IgnoreCase);
        }
        #endregion

  

时间: 2024-08-10 22:55:23

HtmlEntities的相关文章

htmlentities,html_entity_decode,addslashes

PHP htmlspecialchars_decode() 函数 PHP htmlspecialchars() 函数 PHP html_entity_decode() 函数 PHP中混淆的三组函数总结(htmlentities,html_entity_decode,addslashes)

PHP中htmlentities和htmlspecialchars的区别

这两个函数的功能都是转换字符为HTML字符编码,特别是url和代码字符串.防止字符标记被浏览器执行.使用中文时没什么区别,但htmlentities会格式化中文字符使得中文输入是乱码 htmlentities转换所有的html标记,htmlspecialchars只格式化& ' " < 和 > 这几个特殊符号 $str = '<a href="demo.php?m=index&a=index&name=中文">测试页面</

php中htmlspecialchars,htmlentities用法

[导读] 在php中htmlspecialchars, 将特殊字元转成 HTML 格式,而htmlentities,将所有的字元都转成 HTML 字串 了,下面我来分别简单的介绍. htmlentities用法 代码如下复制代码 在php中htmlspecialchars, 将特殊字元转成 HTML 格式,而htmlentities,将所有的字元都转成 HTML 字串 了,下面我来分别简单的介绍. htmlentities用法 $str = "John & 'Adams'";e

urlencode rawurlencode htmlspecialchars htmlentities

w string urlencode ( string $str ) 返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+).此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样.由于历史原因,此编码在将空格编码为加号(+)方面与 ? RFC3896 编码(参见 rawurlencode())不同. string rawu

PHP 5.4 已废弃 magic_quotes_gpc,PHP安全转义函数详解(addslashes 、htmlspecialchars、htmlentities、mysql_real_escape_string、strip_tags)

1. addslashes() addslashes()对SQL语句中的特殊字符进行转义操作,包括(‘), (“), (), (NUL)四个字符,此函数在DBMS没有自己的转义函数时候使用,但是如果DBMS有自己的转义函数,那么推荐使用原装函数,比如MySQL有mysql_real_escape_string()函数用来转义SQL. 注意在PHP5.3之前,magic_quotes_gpc是默认开启的,其主要是在$GET, $POST, $COOKIE上执行addslashes()操作,所以不需

PHP htmlentities 和 htmlspecialchars的区别

一直对这两个转换htm字符为html实体的函数混淆不清,查询了一下文档,总结如下 htmlentities: Convert all applicable characters to HTML entities (将所有可用的字符转换成html实体) htmlspecialchars : Convert special characters to HTML entities (将特殊的字符转换成html实体) 区别:(1) htmlentities转换所有的html标记,htmlspecialc

php htmlentities和htmlspecialchars 的区别

很多人都以为htmlentities跟htmlspecialchars的功能是一样的,都是格式化html代码的,我以前也曾这么认为,但是今天我发现并不是这样的. The translations performed are: 复制代码 代码如下: '&' (ampersand) becomes '&' '"' (double quote) becomes '"' when ENT_NOQUOTES is not set. ''' (single quote) becom

PHP5.3 htmlentities与json_encode的坑

今天在线上使用了 json_encode(htmlentities($value)) 发现出现了! [03-Jul-2015 02:52:44 UTC] PHP Warning:  json_encode_plus() [<a href='function.json-encode-plus'>function.json-encode-plus</a>]: Invalid UTF-8 sequence in argument in /home/users/ouerqiang/fbiz

关于htmlentities 、htmlspecialchars、addslashes的使用

1.html_entity_decode():把html实体转换为字符. Eg:$str = "just atest & 'learn to use '"; echo html_entity_decode($str); echo "<br />"; echo html_entity_decode($str,ENT_QUOTES); echo "<br />"; echo html_entity_decode($st

php的strip_tags,htmlspecialchars,htmlentities,stripslashes,addslashes解释

php函数蛮多的,要完整的每个函数都理解深刻是个挺有挑战性的事情. strip_tags,htmlspecialchars,htmlentities,stripslashes,addslashes这几个函数我想就需要专门的强化一下. 第一个函数:strip_tags,去掉 HTML 及 PHP 的标记 注意:本函数可去掉字串中包含的任何 HTML 及 PHP 的标记字串.若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误.而本函数和 fgetss() 有着相同的