2009-04-07 5 views
7

У нас есть информация о некоторой доле, хранящаяся в базе данных, например. ¾ ½Преобразование дробей в html-объекты

Заканчивая поиск и замену, существуют ли встроенные функции PHP, которые автоматически преобразуют их в соответствующие html-объекты?

ответ

2

Вы можете использовать htmlentities() function. Это заменит все специальные символы своим эквивалентом HTML. Он должен выполнять требуемую работу.

Хороший вопрос кстати, +1.

2

htmlentities.

Но вам, вероятно, это не нужно. Подавайте свою страницу в кодировке, которая включает их (UTF-8, ISO-8859-1), и вы можете включать их как буквенные, неэкранированные символы.

+0

действительно? это применимо только к фракциям? – Tom

+1

Utf-8 позволит вам использовать практически любой символ без преобразования. Тем не менее, вы все равно должны называть htmlentities для обеспечения безопасности. http://akrabat.com/2009/03/18/utf8-php-and-mysql/ подробно описано, как использовать UTF-8 - вам нужно внести изменения в php, mysql и html. –

+0

Это относится ко всему, что вы можете поместить в кодировку, которую вы используете. Если вы находитесь в ISO-8859-1 (западноевропейский), вы получаете до U + 00FF, который включает в себя ¼½¾ (U + 00BC-U + 00BE). Если вы используете UTF-8, который включает всю гамму символов Юникода. Хотя вам все еще нужны htmlspecialchars для работы с '<'/'&'. – bobince

1

Ответ уже дан: используйте htmlentities(). Кроме того, было предложено использовать UTF-8, что, конечно, действительно хорошая идея. Однако, если вы планируете использовать htmlentities() на UTF-8 строк, используйте следующий код (или вы получите причудливо закодированные символы):

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

Как вы можете себе представить, это отстой того, чтобы добавить второй и третий аргумент все время. Для большинства проектов мне нужно htmlentities(), я в конечном итоге пишу функцию быстрого вызова, то есть: