I have a situation where I am passing a string to a function. I want to convert
to " " (a blank space) before passing it to function. Does html_entity_decode
does it?
If not how to do it?
I am aware of str_replace
but is there any other way out?
The html_entity_decode() is used to convert HTML entities to their application characters.
The html_entity_decode() function converts HTML entities to characters. The html_entity_decode() function is the opposite of htmlentities().
Difference between htmlentities() and htmlspecialchars() function: The only difference between these function is that htmlspecialchars() function convert the special characters to HTML entities whereas htmlentities() function convert all applicable characters to HTML entities.
The htmlspecialchars() function converts some predefined characters to HTML entities.
Quote from html_entity_decode()
manual:
You might wonder why
trim(html_entity_decode(' '));
doesn't reduce the string to an empty string, that's because the' '
entity is not ASCII code 32 (which is stripped by trim()) but ASCII code 160 (0xa0) in the default ISO 8859-1 characterset.
You can use str_replace()
to replace the ascii character #160 to a space:
<?php
$a = html_entity_decode('> <');
echo 'before ' . $a . PHP_EOL;
$a = str_replace("\xA0", ' ', $a);
echo ' after ' . $a . PHP_EOL;
html_entity_decode does convert
to a space, just not a "simple" one (ASCII 32), but a non-breaking space (ASCII 160) (as this is the definition of
).
If you need to convert to ASCII 32, you still need a str_replace()
, or, depending on your situation, a preg_match("/s+", ' ', $string)
to convert all kinds of whitespace to simple spaces.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With