Проблеми з кодуванням при малюванні тексту в php

Відео: Кодування utf8 в локальному сервері Денвер

Проблеми з кодуванням при малюванні тексту в PHP

Відео: Як змінити кодування в 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 Ви вже вмієте, з чим я Вас і вітаю!

Поділися в соціальних мережах:

Схожі
Метасимволи в регулярних виразівМетасимволи в регулярних виразів
Як динамічно отримувати коментарі з бази даних.Як динамічно отримувати коментарі з бази даних.
Управління базами даних в phpmyadminУправління базами даних в phpmyadmin
Мета-теги для браузера в htmlМета-теги для браузера в html
Поміняти букви тексту на великі в word.Поміняти букви тексту на великі в word.
Російська мова та регулярні вирази в phpРосійська мова та регулярні вирази в php
Як зробити динамічне додавання коментарів, використовуючи ajax.Як зробити динамічне додавання коментарів, використовуючи ajax.
Як вивести час з урахуванням часового поясу в phpЯк вивести час з урахуванням часового поясу в php
Проблеми з кодуванням на сайтіПроблеми з кодуванням на сайті
Малювання тексту в phpМалювання тексту в php
» » Проблеми з кодуванням при малюванні тексту в php