Проблеми з кодуванням при малюванні тексту в php
Відео: Кодування utf8 в локальному сервері Денвер
Відео: Як змінити кодування в Word
У минулій статті ми з Вами обговорювали малювання тексту в PHP, і в кінці стаття я Вам повідомив, що таким способом Ви російські букви (кирилицю) не виведений. І як малювати російські букви на зображенні в PHP ми з Вами розберемо в цій статті.
Давайте для початку розберемо, чому так відбувається, чому кирилицю PHP не малює. Вся справа в тому, що вбудовані шрифти в PHP не містять регіональної прив`язки, тому російські букви і не виводяться. Способів виходу з цієї ситуації кілька, проте, ми з Вами розберемо найпростіший і, на мій погляд, найкращий варіант. Полягає він в переведення всіх кириличних символів в Unicode. І для цього ми використовуємо функцію iconv (). Не можу пригадати, говорив я про цю дуже корисної функції чи ні, але вона займається перекладом з одного кодування в іншу. Гаразд, давайте приведу приклад:
Відео: Повний UTF8: чекліст для початківців
lt ;?php
// Створюємо "чистий" полотно для малювання шириною 200 пікселів і висотою 300 пікселів
$ i = imageCreate(200,300) -
// Робимо білий фон
$ color = imageColorAllocate($ i,255,255,255) -
// Встановлюємо червоний колір
$ color = imageColorAllocate($ i,255,0,0) -
// Переводимо текст з кирилиці в Unicode
$ russian_text = iconv("CP1251","UTF-8","Сайт MyRusakov.ru") -
// Малюємо текст ttf-шрифтом
imageTtfText($ i,16,94,150,200, $ color,"Times.ttf", $ russian_text) -
// Відправляємо заголовок з mime-type
Header("Content-type: image / jpeg") -
// Виводимо зображення
imageJpeg($ i) -
// Уничтожаем ідентифікатор і звільняємо ресурси сервера
imageDestroy($ i) -
?gt;
Ключовий момент у цьому прикладі - використання функції iconv (string in_charset, string out_charset, string s). Ця функція переводить рядок s з кодування in_charset в кодування out_charset. Тобто в прикладі вище ми переводили з кодування windows-1251 (CP1251) в Unicode (UTF-8). І, зрозуміло, тепер російський текст виводиться без проблем.
Відео: Недоліки PHP-Fusion. Якщо сайт знаками зробити кодування cp1251
За мою вже досить довгу практику, функцію iconv () я використовував стільки раз, що не злічити. Фактично, це універсальна функція, яка дозволяє боротися з практично будь-якими проблемами, пов`язаними з кодуваннями, тому запам`ятайте її, і якщо раптом у Вас замість російського тексту виводиться незрозуміло що, то подумайте про її використанні. А малювати російський текст в PHP Ви вже вмієте, з чим я Вас і вітаю!
- Як отримати з рядка тільки букви в excel
- Як задати кодування в htaccess
- Як динамічно отримувати коментарі з бази даних.
- Як зробити динамічне додавання коментарів, використовуючи ajax.
- Що таке кодування?
- Як вивести час з урахуванням часового поясу в php
- Як поміняти кодування на сайті
- Використання rewritecond в mod_rewrite
- Запит sql на створення і видалення бази даних
- Малювання в php
- Зміна зовнішнього вигляду першої літери
- Малювання тексту в php
- Управління базами даних в phpmyadmin
- Підхід mvc (model-view-controller)
- Nodejs. Запис і читання файлів.
- Російська мова та регулярні вирази в php
- Bitlocker потужний шіфрователь даних
- Мета-теги для браузера в html
- Проблеми з кодуванням на сайті
- Поміняти букви тексту на великі в word.
- Проблеми з кодуванням в базі даних