Задать вопрос
@lexstile

Проблемы с кодировкой кириллицы при наложении текста на изображение?

Делаю наложение текста на картинку, с кириллицей проблемы:
5cc322c6d0e36397141294.gif
Код:
$frames = array(); // массив для хранения слайдов
$framed = array(); // массив для храниения интервалов смены слайдов

$width = $_GET['w'];
$height = $_GET['h'];
$text = $_GET['t'];
$arText = str_split($text);

for ($i = 0; $i < count($arText); $i++) {
	$txt .= $text[$i];
	ob_start();
	writeTextToGIF($txt, $width, $height);
	$frames[] = ob_get_contents(); // записываем в хранилище слайд из буфера
	$framed[] = 30; // записываем интервал до смены слайда
	ob_end_clean();
}

Если вместо функции writeTextToGIF() вставить ее содержимое и убрать цикл, записав последовательно каждую букву (применить код функции к каждому слайду), все работает корректно.
Результат:
5cc32376afe6b947012608.gif
  • Вопрос задан
  • 70 просмотров
Подписаться 2 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
profesor08
@profesor08 Куратор тега PHP
Сам файл должен быть в utf-8, данные должны быть в utf-8. Брать букву вот так mb_substr($txt, $i, 1, "UTF-8"). Попутно открываешь для себя многобайтные кодировки и функции для работы с ними, с префиксом mb_. Длину строки получаешь вот так: mb_strlen($name, "UTF-8")

$str = "привет бла бла бла";

echo strlen($str); // 33 wrong
echo mb_strlen($str); // 18 ok

echo $str[0]; // wrong
echo substr($str, 0, 1); // wrong
echo mb_substr($str, 0, 1); // ok
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы