htmlspecialchars_decode

Convert special HTML entities back to characters

&reftitle.description; `string` `htmlspecialchars_decode` `string` `string` `int` `flags` ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401

This function is the opposite of `htmlspecialchars`. It converts special HTML entities back to characters.

The converted entities are: `&amp;`, `&quot;` (when `ENT_NOQUOTES` is not set), `&#039;` (when `ENT_QUOTES` is set), `&lt;` and `&gt;`.

&reftitle.parameters;

`string`

- The string to decode.

`flags`

- A bitmask of one or more of the following flags, which specify how to handle quotes and which document type to use. The default is `ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401`.

  ## 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_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_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.

&reftitle.returnvalues;

Returns the decoded string.

&reftitle.changelog;

&Version; | &Description;
8.1.0 | `flags` changed from `ENT_COMPAT` to `ENT_QUOTES` | `ENT_SUBSTITUTE` | `ENT_HTML401`.

&reftitle.examples;

### A `htmlspecialchars_decode` example

    <?php
    $str = "<p>this -&gt; &quot;</p>\n";

    echo htmlspecialchars_decode($str);

    // note that here the quotes aren't converted
    echo htmlspecialchars_decode($str, ENT_NOQUOTES);
    ?>

&example.outputs;

    <p>this -> "</p>
    <p>this -> &quot;</p>

&reftitle.seealso;

- `htmlspecialchars`
- `html_entity_decode`
- `get_html_translation_table`