Просмотр поста

.
ДоХтор
# MARAZM (25.06.2016 / 22:40)
смысл в том что перебираю текс побуквенно и рандомно обрабатываю регистром/транслитом.
с текстом все норально.а вот смайлы выводит <ImГ CrC="... получается нужно отделить или закрыть от изменения.утр
Написал пример, может быть по этому принципу допилишь свой скрипт
Пример (+/-)
<?php

//Текст от юзера из формы
$text = ':smile1: и какой-то текст, и ещё смайл :smile3:';

//Массив пользовательских смайлов
$arrSmiles = [
    1 => ':smile1:',
    2 => ':smile2:',
    3 => ':smile3:',
    4 => ':smile4:',
    5 => ':smile5:'
];

//Поиск смайлов в тексте
preg_match_all('~:[a-z0-9]+:~', $text, $smiles);

//Получаем массив ключей найденных в тексте смайлов
$keys = [];
foreach ($smiles[0] as $smile) {
    $keys[] = array_search($smile, $arrSmiles);
}

//Производим замену в пользовательском тексте, меняем смайлы 
//на их числовые ключи, т.к. числа регистронезависимы
$str = str_replace($smiles[0], $keys, $text);

//Разбиваем строку на массив символов
$chars = preg_split('||u', $str, -1, PREG_SPLIT_NO_EMPTY);

//Собираем новую "верблюжью" строку
$str2 = '';
foreach ($chars as $k => $ch) {
    if (!($k % 2)) {
        $str2 .= mb_strtoupper($ch, 'UTF-8');
    } else {
        $str2 .= mb_strtolower($ch, 'UTF-8');
    }
}

//Производим замену в верблюжьей строке, меняем числа обратно на смайлы
$text = str_replace($keys, $smiles[0], $str2);

echo $text; //:smile1: И КаКоЙ-То тЕкСт, И ЕщЁ СмАйЛ :smile3: