File: html-entity-decode.xml

package info (click to toggle)
phpdoc 20050512-1
  • links: PTS
  • area: non-free
  • in suites: sarge
  • size: 36,592 kB
  • ctags: 1,501
  • sloc: xml: 376,768; php: 6,708; cpp: 500; makefile: 293; perl: 161; sh: 151; awk: 28
file content (134 lines) | stat: -rw-r--r-- 4,104 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.9 $ -->
<!-- splitted from ./en/functions/strings.xml, last change in rev 1.2 -->
  <refentry id="function.html-entity-decode">
   <refnamediv>
    <refname>html_entity_decode</refname>
    <refpurpose>
     Convert all HTML entities to their applicable characters
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Description</title>
     <methodsynopsis>
      <type>string</type><methodname>html_entity_decode</methodname>
      <methodparam><type>string</type><parameter>string</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>quote_style</parameter></methodparam>
      <methodparam choice="opt"><type>string</type><parameter>charset</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>html_entity_decode</function> is the opposite of
     <function>htmlentities</function> in that it converts all HTML entities
     to their applicable characters from <parameter>string</parameter>.
    </para>
    <para>
     The optional second <parameter>quote_style</parameter> parameter lets 
     you define what will be done with 'single' and "double" quotes.  It takes 
     on one of three constants with the default being 
     <constant>ENT_COMPAT</constant>:
     <table>
      <title>Available <parameter>quote_style</parameter> constants</title>
      <tgroup cols="2">
       <thead>
        <row>
         <entry>Constant Name</entry>
         <entry>Description</entry>
        </row>
       </thead>
       <tbody>
        <row>
         <entry><constant>ENT_COMPAT</constant></entry>
         <entry>Will convert double-quotes and leave single-quotes alone.</entry>
        </row>
        <row>
         <entry><constant>ENT_QUOTES</constant></entry>
         <entry>Will convert both double and single quotes.</entry>
        </row>
        <row>
         <entry><constant>ENT_NOQUOTES</constant></entry>
         <entry>Will leave both double and single quotes unconverted.</entry>
        </row>
       </tbody>
      </tgroup>
     </table>
    </para>
    <para>
     The ISO-8859-1 character set is used as default for the optional third
     <parameter>charset</parameter>. This defines the character set used in
     conversion.
    </para>
    &reference.strings.charsets;    
    <para>
     <example>
      <title>Decoding HTML entities</title>
      <programlisting role="php">
<![CDATA[
<?php
$orig = "I'll \"walk\" the <b>dog</b> now";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo $b; // I'll "walk" the <b>dog</b> now


// For users prior to PHP 4.3.0 you may do this:
function unhtmlentities($string) 
{
    $trans_tbl = get_html_translation_table(HTML_ENTITIES);
    $trans_tbl = array_flip($trans_tbl);
    return strtr($string, $trans_tbl);
}

$c = unhtmlentities($a);

echo $c; // I'll "walk" the <b>dog</b> now

?>
]]>
      </programlisting>
     </example>
    </para>
    <para>
     <note>
      <para>
       You might wonder why trim(html_entity_decode('&amp;nbsp;')); doesn't
       reduce the string to an empty string, that's because the '&amp;nbsp;'
       entity is not ASCII code 32 (which is stripped by
       <function>trim</function>) but ASCII code 160 (0xa0) in the default ISO
       8859-1 characterset.
      </para>
     </note>
    </para>
    <para>
     See also <function>htmlentities</function>,
     <function>htmlspecialchars</function>,
     <function>get_html_translation_table</function>, 
     and <function>urldecode</function>.
    </para>
   </refsect1>
  </refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->