ФорумПрограммированиеPHP для идиотов → Lorem ipsum generator

Lorem ipsum generator

  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 21 мая 2009 г. 9:11

    Ничего сверхествественного, но мне пригодилось и вам может.
    Простой генератор правдоподобного текста. Набирает текст из заготовленных фраз.


    <?php

    class QB_Lipsum
    {
    public static function generator($num = 1)
    {
    $max = count(self::$paragraphs) - 1;
    if ($num == 1)
    return self::$paragraphs[rand(0, $max)];

    $num = min($num, $max);
    $already = array();
    for ($text = '', $i=0; $i < $num; ++$i)
    {
    do {
    $line = rand(0, $max);
    } while (in_array($line, $already));

    $already[] = $line;
    $text .= self::$paragraphs[$line];
    $r = rand(1,100);
    $text .= ($r < 33) ? (($r < 10) ? "\n\n": "\n"): ' ';
    }
    return $text;
    }

    private static
    $paragraphs = array(
    'Aenean facilisis venenatis ipsum vel aliquet.',
    'Aenean rhoncus malesuada auctor.',
    'Cras sit amet magna sit amet felis eleifend lacinia.',
    'Donec nec velit eget tellus adipiscing iaculis eu non lorem.',
    'Donec ac tellus eu tellus dignissim blandit.',
    'Donec diam dui, mollis venenatis lacinia ac, pretium id augue.',
    'Donec lectus dolor, cursus eget facilisis id, ultrices ac mauris.',
    'Duis sem quam, euismod ac rhoncus id, adipiscing sed sem.',
    'Etiam sagittis tellus sapien.',
    'In accumsan bibendum magna a egestas.',
    'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
    'Maecenas tristique magna nulla, in fringilla purus.',
    'Nulla eleifend velit faucibus eros rhoncus molestie.',
    'Nulla pellentesque dolor at metus molestie ultrices nec vitae metus.',
    'Pellentesque vel felis purus, ut dignissim erat.',
    'Pellentesque quis purus nec odio aliquet bibendum ut vitae risus.',
    'Phasellus sed felis vitae purus dictum fermentum.',
    'Praesent ac tellus dui, in euismod leo.',
    'Proin vulputate tincidunt erat id auctor.',
    'Sed non justo enim.',
    'Vestibulum imperdiet nunc id metus pellentesque eleifend.',
    'Vivamus ultricies iaculis arcu, vitae bibendum tellus feugiat venenatis.',
    );
    }


    В моем примере заготовки фраз — готовые псевдолатинские предложения, но можно забить его короткими словосочетаниями. Чем длиннее массив фраз и короче сами фразы, тем более "случайным" будет текст.

    На таком коротком диапазоне значений повторы rand() очень даже возможны. Я не заморачивался всякими счетчиками и весами. Массив $already предохраняет от повторного включения предложения. Чтобы не нарваться на вечный цикл я тупо ограничиваю макс. кол-во.
    Для большей правдоподобности есть еще случайная вставка line feed.

    Пример использования: какбы симуляция какбы темы на форуме.


    $id = $_GET['id'];
    srand($id);
    $subject = QB_Lipsum::generator(1);
    $message = nl2br(QB_Lipsum::generator(rand(1, 20)));


    Заголовок — одна строка, тело — несколько строк. srand($id) гарантирует повторяемость результата для заданного id темы.
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 мая 2009 г. 9:15, спустя 3 минуты 48 секунд

    + еще маркова прикрутить и все чики пики)
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 21 мая 2009 г. 9:35, спустя 20 минут 25 секунд

    "Средства должны быть адекватны цели"
    Если понадобится пучок говно-дорвеев создать, наверное надо как-то улучшать и прикручивать. Я пока ковыряю "вьюхи вперед модели", ты в курсе. Для этого сгодится как есть.
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 мая 2009 г. 9:42, спустя 6 минут 39 секунд


    "Средства должны быть адекватны цели"
    Если понадобится пучок говно-дорвеев создать, наверное надо как-то улучшать и прикручивать. Я пока ковыряю "вьюхи вперед модели", ты в курсе. Для этого сгодится как есть.
    )))

    пора уже на пыхосвн выкладывать такие вещи, я вот без свн паблишил у себя в блоге и конял, что УГ это. когда вечно надо ссылки давать и тп. свн ахуенен, но про свн то я и до етого знал и пользовался, просто думал что можно руками поддерживать, увы :))
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 21 мая 2009 г. 9:54, спустя 11 минут 34 секунды

    У меня есть мысль [ охуенная, как всегда ] что нужен русский аналог Snipplr. Короткие кусочки-идеи + "поместить в избранное". Чем больше в избранном, тем выше рейтинг. Гениальное просто.
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 мая 2009 г. 9:56, спустя 2 минуты 48 секунд

    artoodetoo, оформим?)
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 21 мая 2009 г. 10:00, спустя 3 минуты 17 секунд

    лехко. у меня уже домен есть подходящий ;) и полная голова охуенных мыслей
    ιιlllιlllι унц-унц
  • Dimezis

    Сообщения: 20 Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 23:00, спустя 1185 дней 13 часов

    Подождите, Светуська ,вам скоро ответят,если я не занят.
  • Fujin

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 23:12, спустя 11 минут 38 секунд

    мирка конечно не может восприниматься абсолютно серьёзно

Пожалуйста, авторизуйтесь, чтобы написать комментарий!