daily pastebin goal
11%
SHARE
TWEET

HTML Escape

MeaCulpa Nov 14th, 2012 78 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # HTML escape replacement... Performance?
  2. function html_esc ( str ) {
  3.    
  4.     # General Escaping Code -> Symbol
  5.     for (i=33; i<383; i++) {
  6.         code = sprintf("&#%s;", i);
  7.         symbol = sprintf("%c", i);
  8.         trans[code] = symbol;
  9.     }
  10.    
  11.     # Trademark, with no entity name
  12.     trans["&#8482;"] = sprintf("%c", 8482); # ™
  13.    
  14.     # Euro, with no code
  15.     trans["&euro;"] = "€"; # €
  16.    
  17.     # Common symbol with additional entity name
  18.     trans["&quot;"] = trans["&#34;"]; # "
  19.     trans["&amp;"] = trans["&#38;"]; # &
  20.     trans["&lt;"] = trans["&#60;"]; # <
  21.     trans["&gt;"] = trans["&#62;"]; # >
  22.    
  23.     # Symbols with additional entity name
  24.     trans["&nbsp;"] = trans["&#160;"] # None-breaking Space
  25.     trans["&iexcl;"] = trans["&#161;"] # ¡
  26.     trans["&cent;"] = trans["&#162;"] # ¢
  27.     trans["&pound;"] = trans["&#163;"] # £
  28.     trans["&curren;"] = trans["&#164;"] # ¤
  29.     trans["&yen;"] = trans["&#165;"] # ¥
  30.     trans["&brvbar;"] = trans["&#166;"] # ¦
  31.     trans["&sect;"] = trans["&#167;"] # §
  32.     trans["&uml;"] = trans["&#168;"] # ¨
  33.     trans["&copy;"] = trans["&#169;"] # ©
  34.     trans["&ordf;"] = trans["&#170;"] # ª
  35.     #trans[""] = trans["&#171;"] # No entity name for: «
  36.     trans["&not;"] = trans["&#172;"] # ¬
  37.     trans["&shy;"] = trans["&#173;"] # ­
  38.     trans["&reg;"] = trans["&#174;"] # ®
  39.     trans["&macr;"] = trans["&#175;"] # ¯
  40.     trans["&deg;"] = trans["&#176;"] # °
  41.     trans["&plusmn;"] = trans["&#177;"] # ±
  42.     trans["&sup2;"] = trans["&#178;"] # ²
  43.     trans["&sup3;"] = trans["&#179;"] # ³
  44.     trans["&acute;"] = trans["&#180;"] # ´
  45.     trans["&micro;"] = trans["&#181;"] # µ
  46.     trans["&para;"] = trans["&#182;"] # ¶
  47.     trans["&middot;"] = trans["&#183;"] # ·
  48.     trans["&cedil;"] = trans["&#184;"] # ¸
  49.     trans["&sup1;"] = trans["&#185;"] # ¹
  50.     trans["&ordm;"] = trans["&#186;"] # º
  51.     trans["&raquo;"] = trans["&#187;"] # »
  52.     trans["&frac14;"] = trans["&#188;"] # ¼
  53.     trans["&frac12;"] = trans["&#189;"] # ½
  54.     trans["&frac34;"] = trans["&#190;"] # ¾
  55.     trans["&iquest;"] = trans["&#191;"] # ¿
  56.     trans["&Agrave;"] = trans["&#192;"] # À
  57.     trans["&Aacute;"] = trans["&#193;"] # Á
  58.     trans["&Acirc;"] = trans["&#194;"] # Â
  59.     trans["&Atilde;"] = trans["&#195;"] # Ã
  60.     trans["&Auml;"] = trans["&#196;"] # Ä
  61.     trans["&Aring;"] = trans["&#197"] # Å
  62.     trans["&AElig;"] = trans["&#198;"] # Æ
  63.     trans["&Ccedil;"] = trans["&#199;"] # Ç
  64.     trans["&Egrave;"] = trans["&#200;"] # È
  65.     trans["&Eacute;"] = trans["&#201;"] # É
  66.     trans["&Ecirc;"] = trans["&#202;"] # Ê
  67.     trans["&Euml;"] = trans["&#203;"] # Ë
  68.     trans["&Igrave;"] = trans["&#204;"] # Ì
  69.     trans["&Iacute;"] = trans["&#205;"] # Í
  70.     trans["&Icirc;"] = trans["&#206;"] # Î
  71.     trans["&Iuml;"] = trans["&#207;"] # Ï
  72.     trans["&ETH;"] = trans["&#208;"] # Ð
  73.     trans["&Ntilde;"] = trans["&#209;"] # Ñ
  74.     trans["&Ograve;"] = trans["&#210;"] # Ò
  75.     trans["&Oacute;"] = trans["&#211;"] # Ó
  76.     trans["&Ocirc;"] = trans["&#212;"] # Ô
  77.     trans["&Otilde;"] = trans["&#213;"] # Õ
  78.     trans["&Ouml;"] = trans["&#214;"] # Ö
  79.     trans["&times;"] = trans["&#215;"] # ×
  80.     trans["&Oslash;"] = trans["&#216;"] # Ø
  81.     trans["&Ugrave;"] = trans["&#217;"] # Ù
  82.     trans["&Uacute;"] = trans["&#218;"] # Ú
  83.     trans["&Ucirc;"] = trans["&#219;"] # Û
  84.     trans["&Uuml;"] = trans["&#220;"] # Ü
  85.     trans["&Yacute;"] = trans["&#221;"] # Ý
  86.     trans["&THORN;"] = trans["&#222;"] # Þ
  87.     trans["&szlig;"] = trans["&#223;"] # ß
  88.     trans["&agrave;"] = trans["&#224;"] # à
  89.     trans["&aacute;"] = trans["&#225;"] # á
  90.     trans["&acirc;"] = trans["&#226;"] # â
  91.     trans["&atilde;"] = trans["&#227;"] # ã
  92.     trans["&auml;"] = trans["&#228;"] # ä
  93.     trans["&aring;"] = trans["&#229;"] # å
  94.     trans["&aelig;"] = trans["&#230;"] # æ
  95.     trans["&ccedil;"] = trans["&#231;"] # ç
  96.     trans["&egrave;"] = trans["&#232;"] # è
  97.     trans["&eacute;"] = trans["&#233;"] # é
  98.     trans["&ecirc;"] = trans["&#234;"] # ê
  99.     trans["&euml;"] = trans["&#235;"] # ë
  100.     trans["&igrave;"] = trans["&#236;"] # ì
  101.     trans["&iacute;"] = trans["&#237"] # í
  102.     trans["&icirc;"] = trans["&#238;"] # î
  103.     trans["&iuml;"] = trans["&#239;"] # ï
  104.     trans["&eth;"] = trans["&#240;"] # ð
  105.     trans["&ntilde;"] = trans["&#241;"] # ñ
  106.     trans["&ograve;"] = trans["&#242;"] # ò
  107.     trans["&oacute;"] = trans["&#243;"] # ó
  108.     trans["&ocirc;"] = trans["&#244;"] # ô
  109.     trans["&otilde;"] = trans["&#245;"] # õ
  110.     trans["&ouml;"] = trans["&#246;"] # ö
  111.     trans["&divide;"] = trans["&#247;"] # ÷
  112.     trans["&oslash;"] = trans["&#248;"] # ø
  113.     trans["&ugrave;"] = trans["&#249;"] # ù
  114.     trans["&uacute;"] = trans["&#250;"] # ú
  115.     trans["&ucirc;"] = trans["&#251;"] # û
  116.     trans["&uuml;"] = trans["&#252;"] # ü
  117.     trans["&yacute;"] = trans["&#253;"] # ý
  118.     trans["&thorn;"] = trans["&#254;"] # þ
  119.  
  120.     for (i in trans) {
  121.         gsub(i, trans[i], str)
  122.     }
  123.  
  124.     return str;
  125. }
RAW Paste Data
Top