{"id":23893324,"url":"https://github.com/sumpygump/rumble-text","last_synced_at":"2026-06-13T01:32:18.111Z","repository":{"id":57061356,"uuid":"195139839","full_name":"sumpygump/rumble-text","owner":"sumpygump","description":"PHP library for generating random strings","archived":false,"fork":false,"pushed_at":"2025-10-27T23:18:07.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-28T01:18:10.491Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sumpygump.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-07-03T23:43:18.000Z","updated_at":"2025-10-27T23:18:11.000Z","dependencies_parsed_at":"2023-02-15T04:16:17.826Z","dependency_job_id":null,"html_url":"https://github.com/sumpygump/rumble-text","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/sumpygump/rumble-text","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sumpygump%2Frumble-text","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sumpygump%2Frumble-text/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sumpygump%2Frumble-text/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sumpygump%2Frumble-text/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sumpygump","download_url":"https://codeload.github.com/sumpygump/rumble-text/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sumpygump%2Frumble-text/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34269363,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-04T14:17:46.991Z","updated_at":"2026-06-13T01:32:18.092Z","avatar_url":"https://github.com/sumpygump.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rumble Text\n\nRumbletext is a simple PHP library for generating random text.\n\nMy intent was to make a library suitable for generating placeholder (lorem ipsum) text. It uses a primitive algorithm for making pronouncable words. It comes with some various lettersets for use in probabilities of vowel and consonant distribution to assist in this.\n\n## Installation\n\nTo install, use composer with the following command:\n\n```\ncomposer require sumpygump/rumble-text\n```\n\n## Usage\n\n### As a library\n\nThe primary usage of this library is to use it as a service in a PHP project. Instantiate an instance of the class `RumbleText` and call the various functions like `generateRandomWord()`. This will return an random generated word.\n\nExample:\n\n```\n\u003c?php\nrequire_once 'vendor/autoload.php';\n\nuse RumbleText\\RumbleText;\n\n$rumble = new RumbleText(RumbleText::LETTERSET_ORIGINAL);\n$word = $rumble-\u003egenerateRandomWord();\necho $word . \"\\n\";\n```\n\nList of available methods:\n\n* generateRandomString($length, $chars)\n* generateRandomPhrase($min = 1, $max = 5, $as_array = false)\n* generateRandomSentence($min = 1, $max = 20, $as_array = false)\n* generateRandomParagraph($min = 1, $max = 20, $exact_wordcount = null, $as_array = false)\n* generateRandomArticle($min = 1, $max = 8, $exact_wordcount = null)\n* generateRandomWord($length = 5, $lower_case = true, $ucfirst = false, $upper_case = false, $exactlength = false)\n* generateRandomName($maxlength = 10)\n* generateRandomCompany($maxwords = 2)\n* generateRandomWebsite()\n* generateRandomEmail()\n* generateRandomDigits($minlength = 4, $maxlength = 16, $exactlength = 0)\n* generateRandomPhone()\n* generateRandomAddress()\n\n### As a CLI script\n\nThere is also a cli script that can be used to output various random strings from the command line.\n\nUse `rumble-text --help` to get the following help message:\n\n```\nRumble-text generates random text.\n\nUsage: rumble-text [--letterset \u003cletterset\u003e] [--type \u003ctype\u003e] [--chars \u003cchars\u003e] [wordcount|length]\n  --letterset allows to select algorithm for probabilities of vowels and\n              consonants to use\n  --type allows to pick what type of entity to produce (whether string, word,\n         name, paragraph, etc.)\n  --chars is only used for type 'string', the format is a string of chars to\n          pick from. e.g. --chars abcdef012\n  some types use wordcount to output a certain number of words, and some types\n  use length to specify character length\n\nValid lettersets:\n - original\n - equal\n - baba\n - caesar\n - hayden\n - parseltongue\n\nValid types:\n - string\n - phrase\n - sentence\n - paragraph\n - article\n - word\n - name\n - company\n - website\n - email\n - digits\n - phone\n - address\n```\n\n## Lettersets\n\nBelow is a showcase of the lettersets available. Note: the lettersets are not used for the methods `generateRandomString` or `generateRandomDigits`\n\n### Original\n\nThe original letterset has a straightforward distribution of vowels and consonants. I fine-tuned it manually based on what I thought was aesthetically pleasing.\n\n```\nCojo pamfyresi petyop irwydaw, buspe pib hyto my satwotar! Tesasraf etydna\nahlesfome syvitvada mainvirrus er wor savmy paszote enmys cezaat cerrace\nsa. Ohsepa sarba sit otsel vijizupe esnevremiro nidsol dovsi acis sedoltuz\nyz tekecna hekeco pap hovabator. Botsibe osbapal vejeen syceirme tobhyt\nastymak jefmesa soesmar dacov sonfif idsuznewe emsoc peb peumedav renodan.\nCim, ysgul. Enarutro eg abjis tabetatet tynyjjas nawhe et bemonot ergahe,\ndo?.\n```\n\n### Caesar\n\nThe caesar letterset is based on the distribution of english word letters as described in the manpage of `caesar`:\n\n\u003e The frequency (from most common to least) of English letters is as follows:\n\u003e ETAONRISHDLFCMUGPYWBVKXJQZ\n\u003e Their frequencies as a percentage are as follows:\n\u003e E(13),  T(10.5),  A(8.1),  O(7.9),  N(7.1),  R(6.8),  I(6.3), S(6.1), H(5.2), D(3.8), L(3.4), F(2.9), C(2.7), M(2.5), U(2.4), G(2), P(1.9), Y(1.9), W(1.5), B(1.4), V(.9), K(.4), X(.15), J(.13), Q(.11), Z(.07).\n\nThis letterset produces text like this:\n\n```\n\"Ter?\" Awaf wile! Nelen ninfena turoab peti diced om pafatite opleh,\nlagcomuni mepetometa tofegod. Et itad tis onurrateh ittejad he ananmeron\ncoesenni. Sarororih ostonet lyntav it oprir rela dekyro feid boerhe lansan\npewym sedisibe hosi runreh dolarmer itcihheg idunab. Noctona otruhe\nnuenteci darerut nis dohsu meorensin lostonpes as socuis mofotlec nebon\ndotag mense noy ef sito gifdeosel tan id. Teveta votiad ubsesmog gehmi\ngomef? Gel eshes rerarog ew pocivis lomtadsece tonasofi arho. Temehe\nwesanouf etder egopet. Kace fera oqon astesi sonefeh he atcuawhon eh tele\nrose hofad tosoyat neamos famu selepa odit tatrid tetemlos dorodot. Ris ta\nren efareltis bessihes.\n```\n\n### Hayden\n\nIn my search for even better approximation of human words I found a paper by Rebecca Hayden where she described the various phonemes and their distribution in speech. I used the results of her paper to generate the hayden letterset.\n\nHere is an example of hayden:\n\n```\nRalawa it rofnayidiy rasnal nis thati ri taszalon ethfymu. Harzanne. Imzin\nnadatura nisgenbomi favatazare pezetot iltatpas tiis hakimele amlasias\nlyfus neinus tiziam derech yachi sat attathis afkaizev kihir thayefeth.\nReslika niglad tirostasu sital raregshuna tuzaalfar zari sir dalneal pidfiz\nshatteti re, imnonara kir inmajapdi kat iswamekzi?\n\nDanekitava lewit thachar. Ta natiwh vinan nay littera toim. Ang taatarla\nmulalanik tialcheth isyah turthazah atnat valka apre sifthas yrvil yoyain?\nKashin nakef panni arif kav, rit ihavny lulkan al totu jayg fililin thyna ihta\nimaj natna jeargi? Zaimnap na whemusha kur er ngata, vewfe anam. Azhthat arjeh\nilnaiwh hanema anasenry azilyng.\n```\n\n### Equal\n\nThe equal letterset has a equal probability for selecting every letter in the alphabet. Unlike the previous examples, there is no weighting for certain letters, so you end up with more j, z, x, w and other rare letters.\n\n```\nTadon owdocon picevo pumozupdiz rova ev rotpis tavaqag man ihpiminu\nkemliwal? Oknit tofbihrela atifuy liokqat nojjoj. Subi ilmof diig yeuc\nsayibuet tafiq xisayu xoja ek ozir juiy yelpeza boleso higohabe yoduzif.\nOloxroki coeskovo uszeaf got birfus cerpe seuj quaqufpu ejqemcup jaskel\nnufo ipmuet xeaw ezde. Ji yutzilewa onjizueg gemikfoh atmahih. Webe bavi\nunur qivo embamo fucixu dawa monus lip ifziquhka, wasov cogiew ucnoorced\nyiol kiclaz ewjag sol? Kopefit viyojecoy tipiollir kez jezih. Omqaru ulgiru\nful lu jow jak wowquga faqweiwdab, enve cucfapi nuga binevuj qahkixi pez\ntec sim? Gokeg xuowjinzez vuscujah qayaiy. Jeej huranilib cakufas mofcato\nniondupis wohu sobkimo acfufhofu.\n```\n\n### Baba\n\nThe 'baba' letterset is just for fun. It will pick a random vowel and a random consonant and ONLY use those in generating words.\n\nExample output. In this example, it picked 'x' and 'i':\n\n```\nXixxixxix ixxi xixix xixxixix ixxixi xix.\n\nIxxixix xixixi ixixxixix ix xixixxixi xixixixxix ixxixxix ixxixxiix\nxiixxixi xixixixxi xixixixi xixix ix xix ixxiixix xixixxix xix xixiixxi\nxixxi xixxixi. Ixxixix \"xiixix?\" Xi ixxixxi. Xixix xixxixxixi xix\nixxixxixix ix ixixxixi xiix ix ixxiixxix ixixxixi xixxixi xixxixi xixxi\nxixix xiix xi. Ixixxixix xixxix xixixix xiixixxix xixixixi xixxixxi\nxixixiix xixix xixxix xixiix xixixi xixi xixxixiix xixiix ixxiixix. Xixixix\nxix xi ix ix xixi ixixxixi ixxixxixix xixixxix xixixi ixxixxix xixiix\nxixxixiix ixxi? \"Xixixxix?\" Ixixxix xixxixix xixix xixixxi, xix xix xix. Xi\nxixxi ixxix. Ix \"xixi xixxi,\" xixix xixiix. Xix xixiixxix xix xixix,\nxixiixxixi xixixix ix ix.\n```\n\n### Parseltongue\n\nParseltongue is another letterset just for fun. This one approximates the snake language from Harry Potter.\n\n```\nSasufasa hisuhih hashi afhasas ahahsi tihas hihisesu essiha ushef hitisahih\nihfihih sufa hah sishit sifihhu fuuffih si ihes sehu sas. Ahfahisi tihhahi\neshatih hifi saha, assahasi hahisah fihhehsa fiihsih. Hut ifsiih fah\nhissusasi siha as hesah ifihfih uhahsihi sah sisasahus ahhas safa hasi\nasahsahu. Saih hifashiha isih itsa fusihis hahaat ashis hehsisi isit sas si\nhuh hahtuh tasah afhah ih hahfa sihasuse. Sisi sisahis? Hasha hefisatsi\nifef hah hahis sah saha sahahusas hahi hihisa hih hahseseas ihhihasah\n\"sassias hassitsasi,\" sasisfes hasi. Sisias hatehhih sausahsah sis hahfisih\nhahsah tisih sifisihfihi ashehti hesihha sasisuha fissuf sifasa hisahhah\nahhuhfit sahahe. Ihsis tihasse sashiih.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsumpygump%2Frumble-text","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsumpygump%2Frumble-text","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsumpygump%2Frumble-text/lists"}