w3resource

PHP : htmlspecialchars() function

Description

The htmlspecialchars() function is used to converts special characters ( e.g. & (ampersand), " (double quote), ' (single quote), < (less than), > (greater than)) to HTML entities ( i.e. & (ampersand) becomes &amp, ' (single quote) becomes &#039, < (less than) becomes &lt; (greater than) becomes &gt; ).

Version:

(PHP 4 and above)

Syntax:

htmlspecialchars(input_string,quote_style,character_set)

Parameter:

Name Description Required /
Optional
Type
input_string The string to be converted. Required String
quote_style Encoding single and double quote.
ENT_COMPAT : Convert double quotes and leave single quotes unchanged.
ENT_COMPAT is the default setting
ENT_QUOTES : Converts both single and double quotes.
ENT_NOQUOTES: Converts neither single nor double quotes.
Optional Integer
charset Refers the character set to be used.
List of character set.
ISO-8859-1 : Western European, Latin-1 [default character set].
ISO-8859-15 : Western European, Latin-9. UTF-8 : ASCII compatible multi-byte 8-bit Unicode.
cp866 : DOS-specific Cyrillic charset.
cp1251 : Windows-specific Cyrillic charset.
cp1252 : Windows-specific charset for Western European.
KOI8-R : Russian.
BIG5 : Traditional Chinese.
GB2312 : Simplified Chinese.
BIG5-HKSCS : Big5 with Hong Kong extensions.
Shift_JIS : Japanese.
EUC-JP : Japanese.
Optional String

Return value:

The converted string.

Value Type: String.

Example:

<?php
$convert = "<li><a href='index.php'>We are learning php</a></li>";
echo "Original string : ".$convert;
echo "<br />";
htmlspecialchars("<li><a href='index.php'>We are learning php</a></li>", ENT_QUOTES);
echo "Only HTML special characters : ".htmlspecialchars($convert);
?>

Output:

Original string: 

Only HTML special characters :
 <li><a href='index.php'>We are learning php</a></li>

View the example in the browser

See also

PHP Function Reference

Previous: htmlspecialchars_ decode
Next: implode



PHP: Tips of the Day

PHP: Using str_replace so that it only acts on the first match?

Can be done with preg_replace:

function str_replace_first($from, $to, $content)
{
    $from = '/'.preg_quote($from, '/').'/';

    return preg_replace($from, $to, $content, 1);
}

echo str_replace_first('abc', '123', 'abcdef abcdef abcdef'); 
// outputs '123def abcdef abcdef'

The magic is in the optional fourth parameter [Limit]. From the documentation:

[Limit] - The maximum possible replacements for each pattern in each subject string. Defaults to -1 (no limit).

Ref : https://bit.ly/35SCuP8