views:

477

answers:

4

We've got some fraction information stored in the database, e.g. ¾ ½

Short of doing a search and replace, are there any inbuilt PHP functions that will automatically convert these to proper html entities?

+1  A: 

You can use the htmlentities() function. This will replace all special characters with their HTML equivalent. It should do the job your require.

Good question btw, +1.

Sam152
A: 

try htmlentities()

Shard
A: 

htmlentities.

But you probably don't need to. Serve your page in an encoding that includes them (UTF-8, ISO-8859-1) and you can include those as literal, unescaped characters.

bobince
really? does this just apply to fractions?
Tom
Utf-8 will allow you to use almost any character without conversion. You should still call htmlentities for security, though. http://akrabat.com/2009/03/18/utf8-php-and-mysql/ details the steps to use UTF-8 - you need to make changes to php, mysql and html.
David Caunt
bobince
A: 

The answer is already given: use htmlentities(). In addition, the use of UTF-8 has been suggested, which of course is a really good idea. However, if you're planning on using htmlentities() on UTF-8 strings, use the following code (or you'll get weirdly encoded characters):

htmlentities($str, ENT_COMPAT, 'UTF-8')

As you can imagine, it sucks having to add the second and third argument all the time. For most projects I need htmlentities() in, I end up writing the a shortcut function, i.e.:

function he($str) { // shortcut function for htmlentities() with UTF-8 settings
 return htmlentities($str, ENT_COMPAT, 'UTF-8');
}
Mathias Bynens