Для получения полного доступа
зарегистрируйтесь.
RSS

Все сниппеты с тэгом «работа с текстом»



Gravatar image
jumper423
  • Репутация: 58
  • Сниппеты: 9
  • Ревизии: 2

Пример шаблона: (Здравствуйте|Добрый день), Евгений.(| Сегодня (прекрасная|плохая|ужасная) погода, не так ли?| Как Вы (поживаете|себя чувствуете)?)

В круглых скобках(группах) фразы разделены символом |. Из группы выбирается одна случайная фраза. Группы могут содержать неограниченное количество подгрупп. Таким образом из примера-шаблона могут получиться лишь следующие фразы:

  • Здравствуйте, Евгений.
  • Добрый день, Евгений.
  • Здравствуйте, Евгений. Сегодня прекрасная погода, не так ли?
  • Добрый день, Евгений. Как Вы поживаете? и т.д.
<?php

function strTemplate($enter)
{
    while(preg_match_all('/\\(([^()]*)\\)/', $enter, $matches))//Если есть строка со скобками в скоторой нет скобок, то записываем её в массив
    {
        $list = explode("|",substr($matches[0][0], 1, strlen ($matches[0][0])-2));//массив вариантов
        $enter = substr($enter, 0, strpos($enter, $matches[0][0])).$list[rand(0, substr_count(substr($matches[0][0], 1, strlen ($matches[0][0])-2),"|"))].substr($enter, strlen ($enter) - strrpos(strrev ($enter), strrev ($matches[0][0])));//собираем строку
    }
    echo $enter;
}
 
$a = strTemplate("(Здравствуйте|Добрый день), Евгений.(| Сегодня (прекрасная|плохая|ужасная) погода, не так ли?| Как Вы (поживаете|себя чувствуете)?)");
echo ($a);
Bran
  • Репутация: 29
  • Сниппеты: 7
  • Ревизии: 0

В предыдущем моём сниппете, я рассказывал про Font Awesome - иконочный шрифт.

Сейчас я покажу, как можно подключить нужный шрифт на вашем сайте. Делается очень просто, копируете шрифты (конвертируем нужный тут), и подключаем в css-файле:

@font-face {
    /* Указываем название шрифта, которое будет использоваться в css */
    font-family: 'Proxima Nova';
    src: url('../fonts/ProximaNovaRegular.eot');
    src: url('../fonts/ProximaNovaRegular.eot?#iefix') format('embedded-opentype'),
    url('../fonts/ProximaNovaRegular.woff') format('woff'),
    url('../fonts/ProximaNovaRegular.ttf') format('truetype'),
    url('../fonts/ProximaNovaRegular.svg#webfont') format('svg');
}

h1 {
    font-family: 'Proxima Nova', sans-serif;
}
dfatt
  • Репутация: 260
  • Сниппеты: 53
  • Ревизии: 7

Если вам нужно пользователю отобразить изменения в тексте, то лучший вариант использовать diff. Для этого используем плагин PrettyTextDiff.

Затем нужно сделать следующую разметку:

<table class="diff-wrapper table">
    <thead>
        <tr>
            <th>Оригинал</th>
            <th>Изменено</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>
                <div class="original">
                    Раньше люди считали планету Земля — плоской
                </div>
            </td>
            <td>
                <div class="changed">
                    Сейчас люди считают планету Земля — круглой
                </div>
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <div class="result"></div>
            </td>
        </tr>
    </tbody>
</table>

Важно! По-умолчанию плагин PrettyTextDiff, в указанном селекторе, будет искать классы original и changed. Если вы хотите указать другие классы, задайте в свойствах originalContainer, changedContainer названия нужных классов.

Чтобы результат сравнения был красиво раскрашен, добавим стили:

ins {
    background-color: #c6ffc6;
    text-decoration: none;
}

del {
    background-color: #ffc6c6;
}

Конечный результат: 1k0Ayhw.png

Плагин вызываем так:

$('.diff-wrapper').prettyTextDiff({
    diffContainer: '.result'
});