$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();
}
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