Guest User

Imran

a guest
Sep 18th, 2008
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.07 KB | None | 0 0
  1. <?php
  2. /*
  3. * Utility functions for generating "lorem ipsum" Latin text.
  4. */
  5.  
  6. $common_p = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';
  7.  
  8. $words = array('exercitationem', 'perferendis', 'perspiciatis', 'laborum', 'eveniet',
  9.     'sunt', 'iure', 'nam', 'nobis', 'eum', 'cum', 'officiis', 'excepturi',
  10.     'odio', 'consectetur', 'quasi', 'aut', 'quisquam', 'vel', 'eligendi',
  11.     'itaque', 'non', 'odit', 'tempore', 'quaerat', 'dignissimos',
  12.     'facilis', 'neque', 'nihil', 'expedita', 'vitae', 'vero', 'ipsum',
  13.     'nisi', 'animi', 'cumque', 'pariatur', 'velit', 'modi', 'natus',
  14.     'iusto', 'eaque', 'sequi', 'illo', 'sed', 'ex', 'et', 'voluptatibus',
  15.     'tempora', 'veritatis', 'ratione', 'assumenda', 'incidunt', 'nostrum',
  16.     'placeat', 'aliquid', 'fuga', 'provident', 'praesentium', 'rem',
  17.     'necessitatibus', 'suscipit', 'adipisci', 'quidem', 'possimus',
  18.     'voluptas', 'debitis', 'sint', 'accusantium', 'unde', 'sapiente',
  19.     'voluptate', 'qui', 'aspernatur', 'laudantium', 'soluta', 'amet',
  20.     'quo', 'aliquam', 'saepe', 'culpa', 'libero', 'ipsa', 'dicta',
  21.     'reiciendis', 'nesciunt', 'doloribus', 'autem', 'impedit', 'minima',
  22.     'maiores', 'repudiandae', 'ipsam', 'obcaecati', 'ullam', 'enim',
  23.     'totam', 'delectus', 'ducimus', 'quis', 'voluptates', 'dolores',
  24.     'molestiae', 'harum', 'dolorem', 'quia', 'voluptatem', 'molestias',
  25.     'magni', 'distinctio', 'omnis', 'illum', 'dolorum', 'voluptatum', 'ea',
  26.     'quas', 'quam', 'corporis', 'quae', 'blanditiis', 'atque', 'deserunt',
  27.     'laboriosam', 'earum', 'consequuntur', 'hic', 'cupiditate',
  28.     'quibusdam', 'accusamus', 'ut', 'rerum', 'error', 'minus', 'eius',
  29.     'ab', 'ad', 'nemo', 'fugit', 'officia', 'at', 'in', 'id', 'quos',
  30.     'reprehenderit', 'numquam', 'iste', 'fugiat', 'sit', 'inventore',
  31.     'beatae', 'repellendus', 'magnam', 'recusandae', 'quod', 'explicabo',
  32.     'doloremque', 'aperiam', 'consequatur', 'asperiores', 'commodi',
  33.     'optio', 'dolor', 'labore', 'temporibus', 'repellat', 'veniam',
  34.     'architecto', 'est', 'esse', 'mollitia', 'nulla', 'a', 'similique',
  35.     'eos', 'alias', 'dolore', 'tenetur', 'deleniti', 'porro', 'facere',
  36.     'maxime', 'corrupti');
  37.  
  38. $common_words = array('lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur',
  39.     'adipisicing', 'elit', 'sed', 'do', 'eiusmod', 'tempor', 'incididunt',
  40.     'ut', 'labore', 'et', 'dolore', 'magna', 'aliqua');
  41.  
  42. function sentence()
  43. {
  44.     /**
  45.     * Returns a randomly generated sentence of lorem ipsum text.
  46.     *
  47.     * The first word is capitalized, and the sentence ends in either a period or
  48.     * question mark. Commas are added at random.
  49.     */
  50.    
  51.     # Determine the number of comma-separated sections and number of words in
  52.    # each section for this sentence.
  53.    global $words;
  54.    
  55.     for ($section_count = mt_rand(1, 5); $section_count; --$section_count)
  56.     {
  57.         foreach (array_rand($words, mt_rand(3, 12)) as $key)
  58.             $section[] = $words[$key];
  59.         $sentence[] = implode($section, ' ');  
  60.     }
  61.     # Convert to sentence case and add end punctuation.
  62.     return ucfirst(implode($sentence, ', ')) . (mt_rand(0, 1) ? '.' : '?');
  63. }
  64.  
  65. function paragraph()
  66. {
  67.     /**
  68.     * Returns a randomly generated paragraph of lorem ipsum text.
  69.     * The paragraph consists of between 1 and 4 sentences, inclusive.
  70.     */
  71.     for ($sentence_count = mt_rand(1, 4); $sentence_count; --$sentence_count)
  72.         $paragraph[] = sentence();
  73.        
  74.     return implode($paragraph, ' ');
  75. }
  76.  
  77. function paragraphs($count, $isCommon = true)
  78. {
  79.     /**
  80.     * Returns a list of paragraphs as returned by paragraph().
  81.     *
  82.     * If `common` is True, then the first paragraph will be the standard
  83.     * 'lorem ipsum' paragraph. Otherwise, the first paragraph will be random
  84.     * Latin text. Either way, subsequent paragraphs will be random Latin text.
  85.     */
  86.     global $common_p;
  87.    
  88.     for ($i = 0; $i < $count; $i++)
  89.         if ($isCommon && $i == 0)
  90.             $paras[] = $common_p;
  91.         else
  92.             $paras[] = paragraph();
  93.            
  94.     return implode($paras, "\n");
  95. }
  96.  
  97. function words($count, $isCommon = true)
  98. {
  99.     /**
  100.     * Returns a string of `count` lorem ipsum words separated by a single space.
  101.     *
  102.     * If `common` is True, then the first 19 words will be the standard
  103.     * 'lorem ipsum' words. Otherwise, all words will be selected randomly.
  104.     */
  105.     global $common_words;
  106.     global $words;
  107.    
  108.     if ($isCommon)
  109.     {
  110.         $common_word_count = count($common_words);
  111.        
  112.         if ($count > $common_word_count)
  113.         {
  114.             foreach (array_rand($words, $count - $common_word_count) as $key)
  115.                 $remaining_words[] = $words[$key];
  116.  
  117.             $word_list = array_merge($common_words, $remaining_words);
  118.         }
  119.         else
  120.             $word_list = array_slice($common_words, 0, $count);
  121.     }
  122.     else
  123.     {
  124.         foreach (array_rand($words, $count) as $key)
  125.             $word_list[] = $words[$key];
  126.     }
  127.    
  128.     return implode($word_list, ' ');
  129. }
  130. ?>
Advertisement
Add Comment
Please, Sign In to add comment