Проблеми з кодуванням при малюванні тексту в 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.
Проблеми з кодуванням в базі даних
Метасимволи в регулярних виразів
Як динамічно отримувати коментарі з бази даних.
Управління базами даних в phpmyadmin
Мета-теги для браузера в html
Поміняти букви тексту на великі в word.
Російська мова та регулярні вирази в php
Як зробити динамічне додавання коментарів, використовуючи ajax.
Як вивести час з урахуванням часового поясу в php
Проблеми з кодуванням на сайті
Малювання тексту в php