pacman, rainbows, and roller s
/ /

XtScript Function: htmlspecialchars

Convert reserved characters to html entities.

XtScript htmlspecialchars is a function that will process a string and encode reserved characters in HTML tag like <, >, ", etc. and return the result.

Basically if you write HTML tags on an HTML page, it will get parsed by the browser. XtScript htmlspecialchars function can process the string first and encode reserved characters in HTML tag, then you can output it to the browser.

The most practical usage example of XtScript htmlspecialchars function is when you want to share a code snippet on your website, you need to encode the code snippet first from all special characters in HTML first.

XtScript htmlspecialchars function basic syntax:

<!--parser:xtscript-->
	call htmlspecialchars $val=...; $flags=...; $encoding=...; $double_encode=...
<!--/parser:xtscript-->

Below is the list of additional arguments available on XtScript htmlspecialchars function. All arguments are OPTIONAL:

  • $flags

    Available $flags constants:

    Constant Name Description
    ENT_COMPAT Will convert double-quotes and leave single-quotes alone.
    ENT_QUOTES Will convert both double and single quotes.
    ENT_NOQUOTES Will leave both double and single quotes unconverted.
    ENT_IGNORE Silently discard invalid code unit sequences instead of returning an empty string. Using this flag is discouraged as it ยป may have security implications.
    ENT_SUBSTITUTE Replace invalid code unit sequences with a Unicode Replacement Character U+FFFD (UTF-8) or &#xFFFD; (otherwise) instead of returning an empty string.
    ENT_DISALLOWED Replace invalid code points for the given document type with a Unicode Replacement Character U+FFFD (UTF-8) or &#xFFFD; (otherwise) instead of leaving them as is. This may be useful, for instance, to ensure the well-formedness of XML documents with embedded external content.
    ENT_HTML401 Handle code as HTML 4.01.
    ENT_XML1 Handle code as XML 1.
    ENT_XHTML Handle code as XHTML.
    ENT_HTML5 Handle code as HTML 5.
  • $encoding

    Supported charsets as the value in $encoding argument:

    Charset Aliases Description
    ISO-8859-1 ISO8859-1 Western European, Latin-1.
    ISO-8859-5 ISO8859-5 Little used cyrillic charset (Latin/Cyrillic).
    ISO-8859-15 ISO8859-15 Western European, Latin-9. Adds the Euro sign, French and Finnish letters missing in Latin-1 (ISO-8859-1).
    UTF-8   ASCII compatible multi-byte 8-bit Unicode.
    cp866 ibm866, 866 DOS-specific Cyrillic charset.
    cp1251 Windows-1251, win-1251, 1251 Windows-specific Cyrillic charset.
    cp1252 Windows-1252, 1252 Windows specific charset for Western European.
    KOI8-R koi8-ru, koi8r Russian.
    BIG5 950 Traditional Chinese, mainly used in Taiwan.
    GB2312 936 Simplified Chinese, national standard character set.
    BIG5-HKSCS   Big5 with Hong Kong extensions, Traditional Chinese.
    Shift_JIS SJIS, SJIS-win, cp932, 932 Japanese
    EUC-JP EUCJP, eucJP-win Japanese
    MacRoman   Charset that was used by Mac OS.
    ''   An empty string activates detection from script encoding (Zend multibyte), default_charset and current locale (see nl_langinfo() and setlocale()), in this order. Not recommended.
  • $double_encode

    Value: 0

    If this argument is passed, the script will not encode existing HTML entities.

Learn XtScript htmlspecialchars function from examples

Print a string contains HTML tags without being parsed by the browser or print a string contains HTML special characters in its HTML entities.

- Code:
<!--parser:xtscript-->
	var $text = <span style="color:pink"><b>This is</b></span> <span style="color:purple"><u>a colorful and</u></span> <span style="color:orange"><i>rich formatted text</i></span>.
	var $raw = call htmlspecialchars $val=$text; $double_encode=0
	var $encoded = call htmlspecialchars $val=$raw

	print Text: $text <br/><br/>
	print Raw: $raw <br/><br/>
	print Encoded: $encoded
<!--/parser:xtscript-->
- Result:
Text: This is a colorful and rich formatted text.

Raw: <span style="color:pink"><b>This is</b></span> <span style="color:purple"><u>a colorful and</u></span> <span style="color:orange"><i>rich formatted text</i></span>.

Encoded: &lt;span style=&quot;color:pink&quot;&gt;&lt;b&gt;This is&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color:purple&quot;&gt;&lt;u&gt;a colorful and&lt;/u&gt;&lt;/span&gt; &lt;span style=&quot;color:orange&quot;&gt;&lt;i&gt;rich formatted text&lt;/i&gt;&lt;/span&gt;.